与敌人碰撞时减去生命不工作pygame

minus lives when collide with enemy not working pygame

我正在 pygame 中使用 python 制作吃豆人风格的游戏,并且我正在尝试制作它以便当 player 与敌方精灵碰撞时(monster) 分数减 1。下面是怪物和玩家的代码,还有我试图减去分数的代码。任何帮助,将不胜感激。如果这有帮助,我可以 post 整个游戏代码。

我试图在与怪物碰撞时减去玩家生命的代码如下。

for monster in group:
    if player.rect.colliderect(monster.rect):
        player.lives -= 1

我怀疑问题是您只在开头创建 livestext。每次在屏幕上打印时都应该重新创建。 您似乎是在游戏结束后才绘制文本(那是为什么?)。所以将 livestext=... 行移动到 blit 之前。生活或许正如你所愿,只是你看不到?

此外,我建议让 lives 成为实例成员:

__init__

中做 self.lives=5

并在每次出现时使用 self.lives 而不是 lives