需要帮助实现简单的碰撞检测(PYGAME)

2024-05-19 00:41:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我对pygame完全陌生,我正在努力在游戏中实现“laserblast”和“tarantula”之间的碰撞检测。我读过很多关于表面和精灵的文件pygame.org网站以及其他网站(包括堆栈溢出),但不幸的是,我无法完全理解它们的概念。在

另外,我想远离课堂,因为我不太熟悉它们,我计划在以后的项目中发展我对它们的知识。在

我经常遇到的错误是

Traceback (most recent call last):
  File "C:\Python27\jetfighterx.py", line 44, in <module>
    if pygame.sprite.collide_rect(laserblast.rect, tarantula.rect):
AttributeError: 'pygame.Surface' object has no attribute 'rect' 

当喷气式战斗机向敌人发射激光时,游戏也很快就崩溃了。在

我真的需要帮助来解决这个问题。在

我的代码是:

^{pr2}$

Tags: 文件orgrect概念游戏堆栈网站表面
1条回答
网友
1楼 · 发布于 2024-05-19 00:41:42

您可能应该阅读pygameSurface类。你可以用Surface.get_剪辑()返回一个可以检查冲突的rect。另外,考虑使用直线碰撞()方法而不是精灵方法。使用它,你的代码将是

if(laserblast.get_clip().colliderect(tarantula.get_clip()))

就像dudxo所说的,你应该考虑为你的游戏元素使用类。在

相关问题 更多 >

    热门问题