如何为级别中定义的对象实现持久状态?
我正在开发2D Metroidvania,它由一系列相互关联的关卡组成,可以重新访问。 每个级别都由Tiled TMX文件表示,在该文件中,我指定了生成不同sprite类的各种对象的位置(例如,敌人,拾取器,控制杆等)。开始新游戏,加载已保存的游戏或更改级别时,我的游戏循环遍历相应的TMX文件并生成该级别中的所有对象。 我通过以下方式处理级别更改:如果Player对象与对象相交Portal,change_map()则调用一种方法,该方法加载新地图(与相交的门户相关联的地图)并将玩家定位在新地图上的适当位置。 我的某些对象具有一些状态,希望通过更改级别以及保存和退出游戏来保持这些状态。例如,如果玩家解锁门,并且门的状态属性设置为“打开”,则我希望玩家返回时将门打开。我想要类似的东西,可以将其设置为左或右,以及其他各种对象。此外,玩家有时会收集一些我不想在玩家重新访问该区域时重生的物品。 因此,我的问题是如何处理这种持久性? 我正在使用Python,尽管我认为您可以从中抽象出来。