2013-03-18 72 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(),卸载特定于该游戏的事物,然后让该对象的引用被垃圾收集),并创建一个新的。 (请注意循环引用!如果你有他们,他们可以保留甚至当他们出去的范围内存在的对象的旧实例。)