如何重置python脚本(清除内存中的所有对象)?

时间:2016-11-01 15:24:36

标签: python python-3.x

我在python中构建了一个小文本RPG,它有一个结束状态,你的健康状况不佳并带你回到主菜单。问题是当你开始一个新游戏时,所有的物体仍处于以前的状态(敌人死亡,战利品收集等)。

无论如何都有效地重置它,好像我已经杀死并重新启动脚本而没有真正这样做?

编辑:我想知道是否存在重新初始化的通用方法,但如果有帮助my project is here

1 个答案:

答案 0 :(得分:1)

执行此操作的直接方法是让对象代表您的游戏状态:

game = GameEngineState()

然后交互/状态保持在该对象内。该对象在玩家按下开始时创建,并在用户开始新游戏时重新创建:

if start:
    game = GameEngineState()

这样就没有关于当前游戏进展的全局状态,你可以通过序列化活动游戏对象来实现保存/加载。

如果您需要显式释放例程(例如,加载到GPU的资源或需要在事情关闭时发出通知的库),您可以在重新启动之前在游戏状态中实现close()方法游戏,甚至更好,use with to let Python handle it for you when the object goes out of scope

with GameEngine() as game:
    # do stuff to game / read inputs / change state / let the player play..
    pass