该行的PauseMenu头文件中存在C2238错误:Game *游戏; 它说';'是意外令牌,以及:C2143语法错误:缺少';'在同一行上的“ *”之前;我不知道这些文件有什么问题,我认为两个文件都正确。
PauseMenu.h头文件:
#pragma once
#include "EventHandler.h";
#include "MousePressEvent.h";
#include "RectElement.h";
#include "Engine.h";
class PauseMenu :
public EventHandler
{
public:
PauseMenu();
void Show();
void Hide();
void onEvent(Event* event);
void onEvent(MousePressEvent* event);
Game* game;
private:
RectElement* background;
RectElement* resume;
RectElement* options;
RectElement* quit;
bool visible = false;
};
Game.h标头文件
#pragma once;
#include "Engine.h";
#include <ctime>;
#include "GameLayer.h";
#include "TextElement.h";
#include "HUDManager.h";
#include <windows.h>;
#include "Collider.h";
#include "CircleCollider.h";
#include "BoxCollider.h";
#include "MouseMoveEvent.h";
#include "CollisionShapeHitEvent.h";
#include "EventHandler.h";
#include "MainMenu.h";
#include "FpsCounter.h";
#include "PauseMenu.h";
#define PI 3.14159265358979323846264338327950288;
class Game :
public EventHandler
{
public:
Game(bool dev);
~Game();
void onEvent(Event* event);
void onEvent(MouseMoveEvent* event);
void onEvent(KeyPressEvent* event);
void onEvent(KeyReleaseEvent* event);
void onEvent(CollisionShapeHitEvent* event);
MainMenu* mainMenu;
PauseMenu* pauseMenu;
private:
Player* player;
Engine* engine;
};
答案 0 :(得分:3)
在biggestWord
和#include
之后删除分号。实际上:如果找不到找不到分号的原因,请删除以#define
开头的行后的所有分号。
我怀疑您是否需要#
中包含的所有那些文件。但是您在game.h
中缺少game.h
或pausemenu.h
的前向声明中:
Game
答案 1 :(得分:0)
我想您在标头之间有一定的循环依赖。
要解决此问题,可以在class Game;
之前的 PauseMenu.h 头文件中对class PauseMenu
使用向前声明。
我猜这样,您仍然可能会遇到其他错误,但是您将跳过提到的错误
答案 2 :(得分:0)
尝试放置析构函数〜PauseMenu(){} 在课程结束时。