私は衝突の応答方法で苦労しています。のアクションスクリプト3で、私は長い間、このコードの意味を説明することができます。それ。私は最初から書きませんでした。また、私は、Collision Detection Toolkitを使用して、衝突がどこで起きているのかを発見しています。
何をしようとしているのは、ボール(キーボードで画面上を移動するオブジェクト)が壁やオブジェクトに当たって壁やオブジェクトを通過しないようにすることです。ゲームのAS3衝突の応答
これは私が理解しているところは、衝突が起こっている角度を見つけて、新しいベクトルである隣接する角度を見つける必要があります。この機能がどのように機能するか理解できません。
vx0:Number = ball.vx * cos + ball.vy * sin;
が見つかりましたか?さらに、私はボールを加速させたくない。オブジェクトに当たるまで速度が一定であることが欲しい。この配列を逆方向に検索する方が速いでしょうか?
- 私はこれを試して助けてくれる人に感謝しています。スペルミスがあればごめんなさい。
for(i = 0; i < collisions.length; i++)
{
var collision:Object = collisions[i];
var angle:Number = collision.angle;
var overlap:int = collision.overlapping.length;
var ball:Ball = collision.object1;
var sin:Number = Math.sin(angle);
var cos:Number = Math.cos(angle);
var vx0:Number = ball.vx * cos + ball.vy * sin;
var vy0:Number = ball.vy * cos - ball.vx * sin;
vx0 = .4;
ball.vx = vx0 * cos - vy0 * sin;
ball.vy = vy0 * cos + vx0 * sin;
ball.vx -= cos * overlap/ball.radius;
ball.vy -= sin * overlap/ball.radius;
}
スピードが懸念される場合は、[反復する](http://stackoverflow.com/questions/1950878/c-for-loop-indexing-is-forward-indexing-faster-in-new-cpus/1951271) #1951271)はおそらく大幅に高速ではなく、わずかに遅くなる可能性もあります。具体的な状況をベンチマークする必要があります。 – Cameron
ありがとうございます。私はそれを念頭に置いておきます。 –