gpt4 book ai didi

c++ - EventType 不是类或命名空间

转载 作者:行者123 更新时间:2023-11-30 04:22:19 25 4
gpt4 key购买 nike

我正在尝试使用 SFML 和 this 制作一个简单的 2D 游戏教程。这是我在本教程中的当前进度的代码:我在使用 Event 类的枚举 EventType 时遇到问题。成员变量名为Type。

 #include "stdafx.h"
#include "SplashScreen.h"


void SplashScreen::Show(sf::RenderWindow & renderWindow)
{
sf::Image image;
if(image.LoadFromFile("images/SplashScreen.png") != true)
{
return;
}

sf::Sprite sprite(image);

renderWindow.Draw(sprite);
renderWindow.Display();

sf::Event event;
while(true)
{
while(renderWindow.GetEvent(event))
{
if( event.Type == sf::Event::EventType::KeyPressed
|| event.Type == sf::Event::EventType::MouseButtonPressed
|| event.Type == sf::Event::EventType::Closed )
{
return;
}
}
}
}

这是我的 stdafx.h:

 // stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#ifndef STDAFX_H
#define STDAFX_H


#include <stdio.h>


// TODO: reference additional headers your program requires here
#include <SFML/System.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/Audio.hpp>

#include <map>
#include <iostream>
#include <cassert>

#endif //STDAFX_H

它似乎包含了 Event.hpp,因为我有事件的自动完成功能。 MouseButtonPressed 和所有其他枚举值出现在代码块中的 sf::Event::EventType:: 范围之后。我还检查了 Event.hpp 文件,它是正确的。我不明白编译器为什么要搞乱我。

当我尝试删除作用域并只写“event.Type == KeyPressed”时,编译器会说“Keypressed 未在此作用域中声明”。我在 Ubuntu 12.04 上运行代码块 10.05。

知道哪里出了问题吗?

编辑:This是我的 Event.hpp

最佳答案

枚举的名称不是范围。只需将 sf::Event::EventType::KeyPressed 替换为 sf::Event::KeyPressed

关于c++ - EventType 不是类或命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13895555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com