2013-03-18 101 views
1

我有一個遊戲,用Python寫的,我用的Panda3D。 現在我想要重新啓動的可能性,也就是說,我想按下一個按鈕,結果主要再次執行,就好像當前遊戲實例從未存在過一樣。的Panda3D - 如何重新開始遊戲

有沒有簡單的方法來做到這一點?

+0

我建議你問的Panda3D社區內的問題了。但是我想,如果沒有其他應用程序啓動panda3d遊戲/應用程序,你想要做的事情是不可能的。也許一個*發射器*或其他東西。 – 2013-03-18 20:27:10

+0

我無法對Panda3D說話。然而,聽起來像你需要在你的UI和你的「遊戲引擎」之間有更大的分離。如果它們足夠分離,則應該能夠重置遊戲引擎的狀態,並讓UI相應地響應。 – theJollySin 2013-03-18 22:35:55

回答

3

不是真的。 Panda3D並沒有真正實現這種抽象,這取決於應用程序開發人員。它取決於具體情況,「重啓」的真正含義;你想關閉現有的窗口,然後重新打開一個新窗口?如果沒有,那麼這意味着你必須保留許多Panda3D對象,並且不能簡單地重新創建ShowBase實例。但是,您是否希望卸載加載到內存中的任何模型?你想重新發送UI對象的幾何圖形到顯卡嗎?

因此,根據您的具體需求,你將不得不卸載,擺脫,你需要重新啓動,然後重新創建這些對象。如果你使用面向對象的方法並且正確地構造你的對象,這應該是直截了當的 - 也就是說,你在你的Game對象上實現一個unload(),卸載特定於該遊戲的事物,然後讓該對象的引用被垃圾收集),並創建一個新的。 (請注意循環引用!如果你有他們,他們可以保留甚至當他們出去的範圍內存在的對象的舊實例。)