我已开始在pygame中制作一款平台游戏。在游戏中,我想使用&time;时间扭曲'选项,允许玩家返回游戏中的前一个点,所有变量与该点相同,例如如果他们在那时没有击败敌人但是后来击败敌人,那么在时间扭曲之后敌人应该重新出现。
为此,我使用列表每秒存储有关游戏的关键细节。所有这些似乎都与一件事情有所不同:敌人此时并没有回到他们的状态。
我发现这是因为在向列表添加精灵组(在本例中为enemyList)时,它会用最新的一个替换存储在上一个列表中的所有敌人列表,所以这段代码:
self.timewarpList.append([self.currentTime, self.presentLevel.enemyList])
print(self.timewarpList)
每秒返回一次:</ p>
[[14, <Group(1 sprites)>]]
[[14, <Group(1 sprites)>], [13, <Group(1 sprites)>]]
[[14, <Group(1 sprites)>], [13, <Group(1 sprites)>], [12, <Group(1 sprites)>]]
[[14, <Group(1 sprites)>], [13, <Group(1 sprites)>], [12, <Group(1 sprites)>],
[11, <Group(1 sprites)>]]
[[14, <Group(0 sprites)>], [13, <Group(0 sprites)>], [12, <Group(0
sprites)>],[11, <Group(0 sprites)>], [10, <Group(0 sprites)>]]
[[14, <Group(0 sprites)>], [13, <Group(0 sprites)>], [12, <Group(0 sprites)>],
[11, <Group(0 sprites)>], [10, <Group(0 sprites)>], [9, <Group(0 sprites)>]]
有谁知道为什么会这样?以及我如何解决这个问题,以便我的价值观不会发生变化?谢谢:))