2016-03-17 377 views
0

所以我使用sfml製作了一個非常簡單的遊戲,但遇到了這個問題。在使用相同的課程和設計之前,我做了一個遊戲。但是我遇到了Player* player;和另一個課Level level的問題。缺少類型說明符 - int假定(類問題)

這次我做錯了什麼。我不記得我上次爲這個特定部分做了什麼(因爲我沒有遇到這個問題),我沒有這些文件了。

繼承人頭文件。

#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; 
}; 
+0

以任何機會,你包括player.h level.h?如果是這樣的話,那就是循環依賴問題。 – Atul

回答

0

這似乎是一個循環依賴問題。見Resolve header include circular dependencies

您需要轉發聲明球員,並採取了包括Player.h像這樣:

#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; 
}; 
+0

原來我能夠通過從application.h中刪除一些東西來解決循環依賴問題,這是在player.h中需要的,因爲我在application.h中有其他依賴項。然後,我將它移到了不同​​的頭文件中,並從player.h中刪除了它,並解決了這兩個依賴關係。 –

相關問題