2008年05月16日

またロック弾

前回に引き続きロック弾


発射位置を敵の座標にしてみると


左上から発射されます。
しかも自分に向かってきます。

08_05_15_1.jpg


という訳で、敵の座標は(0,0)と認識されていると。
つまり取得出来ていないと。
そして式が180度ズレていますと。

変数に入ってるインスタンス名から座標を取り出す時点でおかしいようです
記述的に間違っているのかな。やっぱり。
もっと勉強すれば出来そうな気もしますが、直感では無理でした。

ここで別の方法を考案する事に。
敵側の処理に、弾が当ったら自分のインスタンス名をtergetに変更。
これなら座標が取れそうです。
でも、良く考えると他の敵にロック弾が当ったときに全部tergetって名前になっちゃいますね(実際にはどうなるか分かりませんが)。
これの対処方法を考えるとちょっとややこしくなりそうです。

そしてもう一個考えました!
敵側の処理に、ロック弾が当ったら自分座標を「tergetx」「tergety」という変数に代入。
この変数を角度の計算式にハメ込めば何とかなりそうです。

で、早速やってみたところ案の定失敗(;>_<;)
色々やっているうちに、ムービークリップ内の座標をステージ基準の座標に変換してやらなければならない事に気付きました。

そしてこの処理には
localToGlobal()
というメソッドを使うそうな。
早速、詳しい使い方を検索してみる。
・・・・・・・・
分かりません(;゜〇゜)

全く分からない訳では無いが、なんか物凄くややこしいです。
1〜2時間以上苦戦。
最終的に以下のようになりました。
自分でも良く理解出来ていないので解説は省きます。
役に立たないブログだ(笑)

参考
http://oshiete1.goo.ne.jp/qa2573145.html

****************************************
ロック弾が当ったときの処理に以下を追記

// 基準となるオブジェクトの作成
var mypoint = new Object();

// 基準座標の設定(この場合 _root の基準点)
mypoint.x = 0;
mypoint.y = 0;

//自分の座標をグローバル座標に変換
this.localToGlobal(mypoint);

//tergetxとtergety変数に座標代入
_root.tergetx = mypoint.x;
_root.tergety = mypoint.y;

****************************************


これで座標取得。
弾が当る度に座標を取得し直します。


08_05_15_2.jpg

やったー



08_05_15_3.jpg

貫通してるぅー



08_05_15_4.jpg

ロック外れねぇー



08_05_15_5.jpg

もう死んでるから止めてあげて(笑)



まだまだ調教が必要なようです
posted by ケン at 00:39 | Comment(0) | TrackBack(0) | Flashシューティング1 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック