小编Ner*_*erg的帖子

pygame中的线碰撞

我目前正在开发一款 2D 平台游戏,我意识到我的碰撞编程存在一个大问题。你看,为了找出与玩家的碰撞,我只是将玩家矩形移动,然后在碰撞时,我通过查看玩家的 x 和 y 加速度将玩家推开。

问题是,当使用这种方法时,玩家的速度可能会使玩家跳过他应该碰撞的目标,因为他应该碰撞的矩形太小。例如,如果平台大小为 9 像素,而玩家的移动速度为 11 像素,则他有可能会跳过目标。这种情况通常发生在玩家发射的子弹很小且速度很快的情况下(而且由于游戏的性质,我不希望它们是瞬时的)。

所以我想了想,想出了一个解决方案,从子弹之前所在的位置到他现在所在的位置画一条线,然后检查目标矩形是否与其碰撞。我搜索了执行此类操作的方法,但没有找到任何关于如何将其实现到 Pygame 中的好的解释。

我是否使用像素遮罩?如果是,怎么做?Pygame 中是否已有某些函数可以使用此方法?我真的需要一些帮助。

pygame collision-detection line game-physics python-3.x

6
推荐指数
1
解决办法
6138
查看次数