缺少类型说明符 - 假定的int(类问题)

时间:2016-03-17 03:08:28

标签: c++ sfml

所以我使用sfml做了一个非常简单的游戏,但遇到了这个问题。我在使用相同的课程和设计之前制作了一个游戏。但是我在Player* player;和另一个课程Level level中遇到了问题。

这次我做错了什么。我不记得上次我为这个特殊部分所做的事情(因为我没有遇到过这个问题)而且我不再拥有这些文件。

继承头文件。

#pragma once
//level.h

//includes
#include "Player.h"
#include "GameObject.h"
#include <vector>
#include <ctime>
#include <SFML\Window\Keyboard.hpp>

//usings
using std::vector;
using sf::Keyboard;
class Level
{
public:
    Level();
    ~Level();
    void Update(), Render(sf::RenderWindow& window);
private:
    Player* player;
    void HandleInput(), Randomise(), Reset(), UserInterface(), Collisions(), GenerateObjects(), MoveObjects();

    vector<GameObject*> levelObjects;
    sf::FloatRect rectCollectible[5], rectPlayer;
    sf::Text timeText, scoreText;
    sf::Font font;
    sf::SoundBuffer collectibleBuffer;
    sf::Sound collectibleSound;
    sf::Texture spritesheet;
    bool mute, paused;
    int randomiser, spawnDelay, maxObjects;
};

1 个答案:

答案 0 :(得分:0)

这似乎是循环依赖问题。见Resolve header include circular dependencies

你需要转发声明播放器并取出Player.h的include,如下所示:

#pragma once
//level.h

//includes
//#include "Player.h"
#include "GameObject.h"
#include <vector>
#include <ctime>
#include <SFML\Window\Keyboard.hpp>

//usings
using std::vector;
using sf::Keyboard;
class Player;
class Level
{
public:
    Level();
    ~Level();
    void Update(), Render(sf::RenderWindow& window);
private:
    Player* player;
    void HandleInput(), Randomise(), Reset(), UserInterface(), Collisions(), GenerateObjects(), MoveObjects();

    vector<GameObject*> levelObjects;
    sf::FloatRect rectCollectible[5], rectPlayer;
    sf::Text timeText, scoreText;
    sf::Font font;
    sf::SoundBuffer collectibleBuffer;
    sf::Sound collectibleSound;
    sf::Texture spritesheet;
    bool mute, paused;
    int randomiser, spawnDelay, maxObjects;
};
相关问题