Pygame碰撞检测,透明边框

时间:2016-02-08 17:29:13

标签: pygame png transparency collision

对于我的pygame项目,我必须检测在屏幕上移动的各种.png图像之间的碰撞。

我把图像放在精灵中,精灵放在组内,然后我用它:

pygame.sprite.spritecollide(perso, zombie_group, False)

然而,有时,我的图像不会触摸,但pygame会检测到碰撞...... 这是因为我的图像是透明的边框。

透明边框碰撞,pygame检测到:(

是否有任何想法阻止透明边框碰撞?

1 个答案:

答案 0 :(得分:1)

好的精灵会拍摄他无法检测到的图像,如果它是在透明的BG或颜色bg上,他现在基本上只是看到一个矩形。

如果您使用不规则形状并且矩形近似不够,我建议使用collide_mask同时检查masks这可能是您想要的

<强>更新

关于tutorial的表现:

  

还有其他方法可以做到这一点,使用ANDing sprite mask等等,   但无论如何你在pygame中这样做,它可能会太慢。   对于大多数游戏来说,最好只做'次直接碰撞' -   为每个精灵创建一个比实际小一点的矩形   图像,并将其用于碰撞。它会快得多,   在大多数情况下,玩家不会注意到准确度。