【问题标题】:Pygame - How to detect if sprites are in area? [closed]Pygame - 如何检测精灵是否在区域内? [关闭]
【发布时间】:2014-11-23 01:59:08
【问题描述】:

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

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

【问题讨论】:

  • 这是碰撞检测,是一个非常广泛的话题。例如,该区域的形状是什么?
  • 只是屏幕底部四分之一的矩形。

标签: python list pygame sprite collision-detection


【解决方案1】:

取决于您是否有障碍物,即“在该区域”的定义是什么意思以及您正在处理的许多精灵。

如果精灵不多并且距离计算很快,那么蛮力可能是可以的。

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

如果你有很多精灵,看看四叉树和类似的东西。如果计算距离很复杂,那么您可能会想要查看 A* 算法。这些东西都有库,所以除非你愿意,否则你不必自己实现它们。

这是一个非常笼统的问题(准备被其他人否决:)

【讨论】:

  • 我意识到这不是最好的问题,但我仍然需要帮助。谢谢。
  • 那很好,伙计。给我们一些更多的细节,我们可以给你更多的帮助。你在做什么样的游戏?
猜你喜欢
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
相关资源
最近更新 更多