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

标签 python pygame collision-detection sprite

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

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

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

最佳答案

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

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

__init__ 中执行 self.lives=5

并在每次发生时使用 self.lives 而不是 lives

关于python - 与敌人碰撞时减去生命不工作pygame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27829900/

相关文章:

java - 2D 碰撞检测的性能比简单地检查每对对象更好

python - 如何使用 Pygame 创建 "play again"选项

python - 需要帮助修复我用 Python 制作的游戏

python - asyncio 的默认调度程序何时公平?

python - Pandas 将多个组融为单列

python - PyGame - 无法使用 blit() 调用在屏幕上提供文本

OpenGL GL_SELECT 或手动碰撞检测?

collision-detection - 使用BufferedImage(Java2D Api)的getRGB进行每像素碰撞

python - 在 Python 中导入常用模块

python - 自动与python中的网页交互