【发布时间】:2026-02-14 03:00:02
【问题描述】:
这个问题再次出现在 PyParticles4 上。
Link to last question for reference
如果不清楚请评论...
我正在开发一款射击游戏,很像 this,但在平坦的土地上,墙壁的高度每转都不同(游戏中的一些有趣的东西),并且有 2 名玩家,每人都有一门大炮每回合可以移动一段距离(有限制,他们不能从起始位置移动超过一定的距离)(玩家决定是否要移动)。
到目前为止我的代码(用于子弹和射手)
class Bullet(PyParticles.Particle):
def hit(self,shooterlist):
for shoot in shooterlist:
#confusion
dist = math.hypot(dx,dy)
# other funcs to added
class Shooter:
def __init__(self,pos,size):
self.rect = pygame.Rect(pos,size)
# other funcs to added
我的问题
子弹与射手的碰撞。关于如何知道子弹何时与矩形碰撞的任何想法?
有人建议我查看矩形边缘的所有点,看看它是否在圆圈内,但它似乎很慢。
我认为更快的东西会更好..
..
..
更新:
圆圈周围可以有一个矩形,如果与矩形碰撞,我现在知道矩形何时接近圆圈,甚至可能触摸它。我该如何前进??(感谢 PygameNerd)
【问题讨论】:
-
“非常慢”是相对的。过早的优化可能会削弱项目。
-
你签出related questions了吗?
-
@PaulC 如果墙壁较长或矩形的周长较大,游戏的最终帧数可能会变慢.....
-
@martineau 我没有看到有矩形圆碰撞
-
如果它确实变慢了,并且您对其进行了分析,您可以查看四叉树。但我认为这对你的游戏来说太过分了。