Pygame - 如何检测sprite是否在区域内?

时间:2014-11-23 01:59:09

标签: python list pygame sprite collision-detection

我需要一种方法来获取屏幕某个区域中所有精灵的列表,而我无法在互联网上找到任何精灵。
有人可以给我一个如何做到这一点的示例代码吗?

如果有帮助,所有精灵都在“活动”列表中。

1 个答案:

答案 0 :(得分:1)

取决于你是否有障碍,即"在区域内的定义"意味着并且还有很多你正在处理的精灵。

如果精灵数量不多且距离计算速度很快,那么蛮力可能就行了。

for sprite in sprites:
    if something.distance(sprite) < THRESHOLD:
        do_something_with_near_sprite(sprite)

如果你有很多精灵,那就看看四胞胎等等。如果计算距离很复杂,那么您可能想要查看A *算法。有这些东西的库,所以你不应该自己实现它们,除非你想这样做。

这是一个相当普遍的问题(准备让其他人投票:)