C++ EventType不是类或命名空间
我正在尝试使用SFML和教程制作一个简单的2D游戏。下面是我在本教程中当前进度的代码:我对类事件的enum EventType有问题。成员变量名为TypeC++ EventType不是类或命名空间,c++,codeblocks,sfml,C++,Codeblocks,Sfml,我正在尝试使用SFML和教程制作一个简单的2D游戏。下面是我在本教程中当前进度的代码:我对类事件的enum EventType有问题。成员变量名为Type #include "stdafx.h" #include "SplashScreen.h" void SplashScreen::Show(sf::RenderWindow & renderWindow) { sf::Image image; if(image.LoadFromFile("images/Sp
#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
//stdafx.h:标准系统包含文件的包含文件,
//或特定于项目的包含经常使用的文件,但
//变化不大
//
#ifndef STDAFX_H
#定义STDAFX_H
#包括
//TODO:在此处引用程序所需的其他标题
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#endif//STDAFX_H
它似乎包含了Event.hpp,因为我已经为Event使用了自动完成功能。按下鼠标按钮,所有其他枚举值出现在代码块中的范围之后。我还检查了Event.hpp文件,它是正确的。我不明白为什么编译器把我搞糊涂了
当我试图删除作用域并只写“event.Type==KeyPressed”时,编译器会说“KeyPressed未在此作用域中声明”。
我在Ubuntu 12.04上运行代码块10.05
知道怎么了吗
编辑:是我的事件。hpp枚举的名称不是作用域。只需将
sf::Event::EventType::keyppressed
替换为sf::Event::keyppressed
collegue,就可以不直接包含sf.h了吗?像这样:
包括
//////并使用名称空间:使用名称空间sf
////避免在整个句子之前使用sf::=>///sf::Event
while(window.isOpen())
{/.在此处输入代码
Event event
while(window.pollEvent(event)
{`enter code here`
if(event.type == Event::KeyPressed)
if(event.key.code == Keyboard::Up)
`enter code here`