発射位置を敵の座標にしてみると
左上から発射されます。
しかも自分に向かってきます。

という訳で、敵の座標は(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;
****************************************
これで座標取得。
弾が当る度に座標を取得し直します。

やったー

貫通してるぅー

ロック外れねぇー

もう死んでるから止めてあげて(笑)
まだまだ調教が必要なようです
タグ:Flash ゲーム製作