物理ボディ (バルーン) があり、衝突にインパルスを適用しています。
私が望むのは、「プレーヤー」が風船と衝突したときに上に移動する必要があることです (これはかなりうまく機能しています)。常に垂直に上に移動する必要はありません。
バルーンの最上部に当たった場合にのみ、まっすぐ上に移動する必要があります。それ以外の場合は、ある程度の角度で上に移動する必要があります。どうやってやるの?
物理ボディ (バルーン) があり、衝突にインパルスを適用しています。
私が望むのは、「プレーヤー」が風船と衝突したときに上に移動する必要があることです (これはかなりうまく機能しています)。常に垂直に上に移動する必要はありません。
バルーンの最上部に当たった場合にのみ、まっすぐ上に移動する必要があります。それ以外の場合は、ある程度の角度で上に移動する必要があります。どうやってやるの?
私があなたの質問だと思うことから、これを行う1つの方法があります:
2つのオブジェクト(プレーヤーとバルーン)の位置から衝撃の角度を見つけることができます。つまり、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についても同じです)。