2

みなさん、こんにちは。

2つのオブジェクトが衝突した後にいくつかのパーティクルが作成されるゲームを作成しています。次に、パーティクルにランダムなxおよびy速度が与えられ、すべての方向に飛び出します。私は、粒子が放出される方法を図1のように変更しようとしています。ここでは、粒子は330〜30から150〜210のランダムな角度で放出されます(理解を容易にするために、角度をラジアンではなく度で記述しました)。 )。図1の赤い領域は粒子が飛び出してはならない場所であり、青い領域は粒子が飛び出してはならない場所です。しかし、私は望ましい効果を達成することができませんでした。誰かが役立つ読み物へのリンクやコードの例を手伝ってくれるかどうか疑問に思いました。私はグーグルを検索していますが、まともな例を見つけることができません。

パーティクルのスポーン角度。青はスポーンでき、赤はスポーンできません。 図1

ノート:

    -角度は度で記述されますが、Flashはラジアンを使用するため、ラジアンに変更する必要がありますMath.pi/180。コードに追加された単純な変換()で十分です。
    -図1はデカルト座標系に似ていますが、Flashの座標系ではy軸が反転しています。
    -試したコードを投稿しますが、役に立たないというのは望み通りではありません。
4

1 に答える 1

2
var speed:Number = minSpeed + Math.random() * (maxSpeed - minSpeed);
var angle:Number = Math.random() * 120 - 30;
if (angle > 30) angle += 120;
angle *= Math.PI/180;

var speedX = Math.cos(angle) * speed;
var speedY = Math.sin(angle) * speed;
于 2012-12-03T18:18:51.550 に答える