2012-02-14 6 views
0

私はゲーム内のキャラクターを表すMovieClipを持っています。私のキャラクターの銃の先端から出てくる "弾を作る"のが好きです。問題は、私のキャラクターが回っているときに、ポイントがMovieClipsピボットを中心に回転することです。MovieClipを回転させてポイントをトラッキングする方法は?

は、それは私が動的に同じ場所に新しいオブジェクトを作成することができるようにとにかく簡単に、この点を追跡することが可能です。

私はguntipで初期位置で、私の性格の子として新しいMCを追加しようとしました。いくつかのシステムでは、子オブジェクトは両親の周りを「追跡」しますが、ここでは機能しませんでした。

これを行う方法が他にもありますか?または、文字のムービークリップの起点を基準とする点の極座標表示をして、テータにMCローテーションを追加するだけでよいのですX座標とY座標を計算しますか?

+0

シンプルな数学http://en.wikipedia.org/wiki/Circle –

答えて

2

キャラクターのムービークリップからその親に座標を変換する方法を試してください。localToGlobal()globalToLocal()銃の先端がピボットポイントからまっすぐ間であるように

+0

私が探していたもののような音...明日は試してみよう – varesa

1

は(私はそれがアームの先端にだと仮定している?)ガンでムービークリップを設定します。ガンMCのxおよびy位置、および現在の角度:

そして弾丸3つのパラメータを発射する方法を渡します。あなたの弾丸のため

コードの初期位置は、次のようになります。

ARMLENGTHは銃の最後までピボット点からの距離である
public function CreateBullet(x,y:Number, degree:Number) 
{ 
    // set start position 
    this.x = x + ARMLENGTH*Math.cos((degree/180)*Math.PI); 
    this.y = y + ARMLENGTH*Math.sin((degree/180)*Math.PI); 
} 

二つの注意点あなたはCreateBullet(でif文を作るために必要がある場合がありますので、Flashが反転度で)、角度で奇妙なことを行うことができますプレイヤーであれば後ろ向き場合。また、銃MCをキャラクターの子として持っている場合は、ポイントを作って、ピボットポイントがその上でlocalToGlobalを実行する必要があります。そのための参考資料はhereです。

+0

銃が側にあると仮定すると、バレルプレーヤーを回転させるのが難しくなります。私はそれを考えましたが、私は "醜い" – varesa

関連する問題