【发布时间】:2015-04-08 20:21:48
【问题描述】:
我正在尝试创建一个游戏,其中 100 块石头随机散布在大量坐标中。问题是有时岩石可能会相互重叠。我想出的解决方案是检查岩石是否相互重叠,如果重叠,则一次又一次地为岩石创建新的随机生成坐标,直到它没有碰撞。我不完全确定如何做到这一点;我已经尝试检测岩石和岩石列表之间的碰撞,但最终发生的只是它认为它与自身发生碰撞并始终返回为 True。 __init__ 函数使用random.randint(-2500,2500) 生成坐标。当在 for 循环中创建岩石时,每个岩石都被添加到列表中。在更新函数中,它检查岩石之间的矩形碰撞。我怎样才能解决这个问题?谢谢,将不胜感激。如果您需要更多信息,请询问我。
【问题讨论】:
-
在将新岩石的坐标添加到岩石列表之前,能否检查与岩石列表的碰撞?
-
只有当项目位于完全相同的坐标时才会发生碰撞,还是必须检查矩形/多边形重叠?如果是后者,所有项目的大小都相同吗?
-
我不是要测试非重复点,我遇到的问题是整个矩形不能重叠。
-
一般的解决方案还是先生成一个有效点的列表,然后从中选择,假设生成比重复检查便宜。那么所有的矩形都一样大吗?
标签: python pygame sprite terrain