如何进行反精灵碰撞?

问题描述 投票:-1回答:2

由于我的游戏将涉及精灵互相争斗,我正在考虑添加一些基本上阻止它们相互通过的东西,但我不确定我是如何做到的。

如果我可以解决我的问题,我已经尝试过在这个网站上进行研究,但到目前为止我还没有找到

python python-3.x pygame
2个回答
0
投票

没有一些上下文很难帮助,但可能你会想要开始查看现有的碰撞函数,如spritecollide或稍微更具体的collide_rect / collide_circle / collide_mask(取决于你的精灵有多复杂以及你想要碰撞检测的精确程度) )(https://www.pygame.org/docs/ref/sprite.html#pygame.sprite.spritecollide


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
© www.soinside.com 2019 - 2024. All rights reserved.