由于我的游戏将涉及精灵相互搏斗,因此我一直在考虑添加一些基本可以阻止它们互相穿越的东西,但是我不确定该怎么做。
如果可以解决我的问题,我曾尝试在此网站上进行研究,但到目前为止我仍然没有找到
答案 0 :(得分:0)
很难在没有上下文的情况下提供帮助,但是大概您会想先看一下现有的碰撞函数,例如spritecollide或稍微更具体的collide_rect / collide_circle / collide_mask(取决于您的sprite的复杂程度和想要碰撞的精确度)检测是) (https://www.pygame.org/docs/ref/sprite.html#pygame.sprite.spritecollide)
答案 1 :(得分:0)
您将需要阅读pygame文档和/或最终查看一些教程。您会遇到很多问题。编写游戏可能会令人沮丧,并且存在大量的反复试验。
但是,为了让您对它的工作原理有所了解,下面是我编写的一个平台程序示例。我做了一些小的调整,例如*.2
,因为这样看起来更自然:
hits = pygame.sprite.spritecollide(player, mobs, False, pygame.sprite.collide_circle)
if hits:
if player.rect.right < mob.rect.centerx-mob.rect.width*.2:
player.rect.right = mob.rect.left
elif player.rect.left > mob.rect.centerx+mob.rect.width*.2:
player.rect.left = mob.rect.right