2013-04-16 81 views

回答

6

將一個try/catch放在敵人被擊中的地方。在catch語句中,讓它打印一個堆棧跟蹤並捕獲異常信息。

喜歡的東西:

try { 
    enemyHit(); 
} catch (Exception e) { 
    System.out.print("RuntimeException: "); 
    System.out.println(e.getMessage()); 
    e.printStackTrace(); 
} 

運行在命令行,這樣打印出來的仍然存在的jar崩潰時的罐子。或者,將錯誤信息寫入文件。

如果這沒有捕獲任何東西,你可以把try/catch放在棧上。如果你沒有捕捉到其他地方的異常,你可以把這個嘗試抓住你的主循環周圍的堆棧頂部。

如果您確信bug已經解決,我不會推薦在發佈代碼中保留try/catch。與try/catch相關的性能問題會讓你的遊戲變慢,如果你讓他們圍繞經常訪問的函數。

+0

如何我從命令行運行jar嗎? – 2013-04-16 17:08:59

+0

windows鍵+ r,鍵入'cmd'按回車。輸入'cd path \ to \ your \ game'然後運行'java -jar NAMEOFJAR.jar' – MichaelHouse

+0

它給了我這個錯誤:http://shrani.si/f/3Z/JK/1lD5YSkb/error.png – 2013-04-16 17:14:30

1

創建一個新的項目和可運行jar添加到外部罐子,然後使用運行配置,你可以選擇它的主要方法和調試從那裏

您還可以設置JAR的源文件夾源其他項目的文件夾(只記得熱代碼替換不再工作了)

0

當我有一個類似於你的問題看到它下降到調試器需要一點額外的時間(尤其是斷點)然後編譯的程序。

這個問題發生時我正在試圖asyncronously載入紋理編譯時,它會工作在調試器,但崩潰很好,我會考慮任何線程(如果您有任何)或任何其他不再運行項目