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/