Python、Pygame、Livewires - 如何进行平滑的碰撞?

标签 python pygame collision livewires

for spike in self.overlapping_sprites:
    spike.handle_collide

这两行对于初学者来说是编码魔法。然而,我在游戏中似乎遇到了障碍。经过测试后,我无法找到一种方法使碰撞更加精确!我的意思是,并不是当两个 Sprite 实际接触时才算重叠,而是当它们周围的框重叠时才算重叠。那么我怎样才能做到这一点,以便我的 Sprite 周围的透明区域在击中其他 Sprite 时不会被视为碰撞?

最佳答案

最合乎逻辑的做法是为每个 Sprite 制作两个矩形,外部一个有边框,内部一个被视为对象本身。

以 64 x 64 的盒子为例。你可以把它做成 62 x 62 的内框,边距为 2 像素,实现起来应该不会太困难。如果您希望框附近的区域不可触及,则仅检查内部区域是否发生碰撞。

关于Python、Pygame、Livewires - 如何进行平滑的碰撞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30683181/

相关文章:

python - pygame 显示没有改变

R.java 的 Android id 冲突机制

python - Pyramid 替换 URL Matchdict 中的双正斜杠

python - 每当我开始时,Pyspark都会给这些

python - 同时使用 Python 3.1 和 2.5

c# - SetActive 在 Unity3d 中不起作用?

ios - Spritekit 碰撞

python - 在Python中计算字符串中的重复字符

python - 更改 python 中列表列表的代码

python - 如何获得鼠标点击次数