我将如何进行抗Sprite碰撞?

时间:2019-04-18 15:36:21

标签: python python-3.x pygame

由于我的游戏将涉及精灵相互搏斗,因此我一直在考虑添加一些基本可以阻止它们互相穿越的东西,但是我不确定该怎么做。

如果可以解决我的问题,我曾尝试在此网站上进行研究,但到目前为止我仍然没有找到

2 个答案:

答案 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