我有一个物理体(气球),我正在施加碰撞脉冲。
我想要的是,当“玩家”与气球碰撞时,它应该向上移动(效果很好),但它应该根据气球的形状在被击中时采取一些角度。它不应该总是垂直向上移动。
只有当击中气球的最顶部时,它才应该笔直向上移动。在其他情况下,它应该以某个角度向上移动。我怎样才能做到这一点?
我有一个物理体(气球),我正在施加碰撞脉冲。
我想要的是,当“玩家”与气球碰撞时,它应该向上移动(效果很好),但它应该根据气球的形状在被击中时采取一些角度。它不应该总是垂直向上移动。
只有当击中气球的最顶部时,它才应该笔直向上移动。在其他情况下,它应该以某个角度向上移动。我怎样才能做到这一点?
根据我认为您的要求,这是一种方法:
您可以从两个对象(您的播放器和气球)的位置找到撞击角度。所以你得到了 balloon.x、balloon.y、player.x、player.y。
-- Two sides of a triangle opp and adj to the angle
sideO = balloon.y-player.y -- the opposite side
sideA = balloon.x-player.x -- the adjacent side
-- To get the angle
angle = math.atan(sideO/sideA)
这可能与您想要的相反。如果它只是尝试 player.x-balloon.x 代替(y 相同)。