0

物理ボディ (バルーン) があり、衝突にインパルスを適用しています。

私が望むのは、「プレーヤー」が風船と衝突したときに上に移動する必要があることです (これはかなりうまく機能しています)。常に垂直に上に移動する必要はありません。

バルーンの最上部に当たった場合にのみ、まっすぐ上に移動する必要があります。それ以外の場合は、ある程度の角度で上に移動する必要があります。どうやってやるの?

4

1 に答える 1

1

私があなたの質問だと思うことから、これを行う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についても同じです)。

これが私が数学を得たところです。 また、lua数学ライブラリ

于 2012-06-07T03:30:47.820 に答える