2017-04-18 51 views
-3

所以我今天起牀,打開我的項目並試圖運行它 - 因爲幸運的是,它甚至在進入main函數之前停止。爲什麼我的程序停止進入前工作的main()

然而,昨晚的工作,但現在無法正常工作。我沒有做任何改變。

這是source.cpp

#include <SFML/Graphics.hpp> 
#include "Game.h" 
#include <iostream> 

using namespace std; 


int main() 
{ 
    string name; 
    cout << "alupigus"; 

    name = "Dino Attack"; 

    Game game(800, 800, name); 

    game.loadAssets(); 

    game.Run(); 

    return 0; 
} 

當我編譯並在控制檯中運行它,它不會顯示任何東西,但黑屏。我無法輸入任何內容,而來自SFML的呈現窗口不顯示。

我只使用SFML作爲外部庫,但我沒有修改任何聯繫,沒有動它的文件等

+1

嘗試更換'COUT <<「alupigus」;用''的cout <<「alupigus」 << ENDL;' – Jonas

+0

不知道如何將這種幫助,但我修改它,它不會啓動一個新行或任何 –

+1

你有沒有嘗試把斷點看看代碼實際得到多少? –

回答

1

你沒有沖洗流。您的代碼應該是這樣的:

#include <SFML/Graphics.hpp> 
#include "Game.h" 
#include <iostream> 

using namespace std; 


int main() 
{ 
    string name; 
    cout << "alupigus" << endl; 

    name = "Dino Attack"; 

    Game game(800, 800, name); 

    game.loadAssets(); 

    game.Run(); 

    return 0; 
} 

另外,還要考慮刪除using namespace std;,因爲這是在更大的項目不好的做法。閱讀this

+0

在上面的代碼中使用命名空間std並沒有損害公平。 –

+0

感謝提示abot的命名空間,但endl也沒有做任何事情,雖然我不確定它應該做什麼,如果它不寫入該字符串無論如何。 –

+0

@const_ref我認爲這是一個更大的項目,我看不到所有的代碼。 –

0

好了,所以基本上我解決了problem.For某種原因,這阻止程序從運行正常,儘管我不觸及代碼的這個區域一週

x = Board::dinozaurPoz; 
     x.x = rand() % 400 + 200; 
     while (Board::matrix[(int)x.y/40][(int)x.x/40] != 1) { 
      x.x = rand() % 400 + 200; 

循環不會跑無限期地,所以我真的不知道這裏有什麼問題。也許更有經驗的人可以告訴我我做錯了什麼。

+1

作爲一個有更多經驗的人,我可以告訴你,褻瀆在Stack Overflow上並不是很受歡迎。請不要在將來使用它。 – Adriaan

+1

對不起,這一直困擾我整天,不會再發生 –

相關問題