使用Pygame Rects在2D平台游戏中进行碰撞检测(地面和斜坡)

时间:2010-11-05 01:03:02

标签: 2d collision-detection pygame

首先,我没有遵守关于碰撞检测逻辑的任何指示;我明白了。

我想要解决的是使用Sprites&和Pygame执行此操作的最简单方法。 Rects。我希望能够检查播放器与地面,墙壁和地面的碰撞。连续下坡。从理论上讲,这是非常直接的,但我遇到了困难,因为看起来你不能用一个Rect做到这一点。

One Rect足够简单,可以让您在X平面上与墙壁发生碰撞。同样的Rect也可以在Y平面中用于实体,但不能用于斜率 - 因为Pygame中的碰撞例程它会检查整个Rect(或掩码),而不仅仅是Rect的底部中间。此外,你需要有一些“精灵”来检查碰撞,在玩家周围的各个地方都是1x1像素。

最简单的方法是什么,没有一堆3个,4个或更多单独的“碰撞像素”来检查斜坡?

杰夫

2 个答案:

答案 0 :(得分:1)

听起来像是你想要像素完美的碰撞检测。 Here你可以找到一个预制功能,在我看来是你想要/需要的。

答案 1 :(得分:0)

您可以使用pygame.mask,它在C:

中提供像素完美碰撞检测

http://www.pygame.org/docs/ref/mask.html