前回作った中途半端なホーミングの仕組み。
まず、出現する敵とホーミングは配列に格納して管理しています。
弾はタイマーイベントを使い、一定間隔で発射。
マウスを押すと発射用のイベントリスナー登録
マウスを離すと発射用のイベントリスナー削除
今回はターゲット設定をシンプルに0番目の敵にしています。
enemyMcListという敵の参照を格納した配列の0番目
enemyMcList[0]がターゲットです。
敵は出現した順番に配列の後ろに追加されていき、
破壊されるとその要素番号は削除されて詰められます。
なので、今回は画面上で一番古い敵が毎回ターゲットになります。
弾の移動処理の中身は以下のような感じですが
ラジアン値から度数法に変換してさらにそれを使ってと
物凄く回りくどい事してると思ふ・・・
//ターゲットが存在するか確認します
//敵の配列は2階層上で管理してます。
var parentObject2:Object=Object(parent.parent);
if(parentObject2.enemyMcList[0] != null){
//敵0番との角度調査
敵との角度をラジアン値で求めて変数radに入れています
var dx = parentObject2.enemyMcList[0].x - this.x;
var dy = parentObject2.enemyMcList[0].y - this.y;
rad = Math.atan2(dy ,dx);
//上記のラジアン値を元に度数法の角度を出し、
//弾MCの向きを決めています。+90ってのは調整です。
this.rotation = rad*180/Math.PI+90;
//斜めに30移動する際のX座標移動量、Y座標移動量を求めます
//-90ってのは調整です。
this.x += Math.cos((this.rotation-90) * Math.PI / 180)*30;
this.y += Math.sin((this.rotation-90) * Math.PI / 180)*30;
}else {
//敵が居ない場合は画面上部に向かって飛ぶようにします
this.rotation = 0;
this.y -= 30;
}
//画面外から出たら消す処理をします
//shot_remove()は自分を消す処理をまとめた関数です。
if (this.y < -10 || this.y >610 || this.x<-10 || this.x>610) {
shot_remove()
}
上記の内容をベースに
1フレームでの角度変更に最大値制限を設けたり
ターゲットを自分に一番近い敵にすれば
普通のホーミングっぽくなりそうです。
それらしくなったバージョン
.
2010年03月28日
2010年03月15日
ねんがんのホーミングをてにいれたぞ!
初めてホーミングを作ってみた。
面倒くさがりなのでかなり適当です(笑)
まず、弧を描いて飛ばずにダイレクトに方向転換します。
すると魚群みたいな動きに・・・・。
あと、ターゲットが画面内の一番古い敵なのでちょっと微妙です。
やはり、前方の一番近い敵とかが無難なターゲット選定なのかな?
動き的にはこれでもアリかもしれませんが、
ぼちぼち修正していきます。
魚群ちっくホーミング
※クリックで発射
今週末はむりげーの予定です。
皆様頑張りましょう。
面倒くさがりなのでかなり適当です(笑)
まず、弧を描いて飛ばずにダイレクトに方向転換します。
すると魚群みたいな動きに・・・・。
あと、ターゲットが画面内の一番古い敵なのでちょっと微妙です。
やはり、前方の一番近い敵とかが無難なターゲット選定なのかな?
動き的にはこれでもアリかもしれませんが、
ぼちぼち修正していきます。
魚群ちっくホーミング
※クリックで発射
今週末はむりげーの予定です。
皆様頑張りましょう。
2010年01月24日
軽いぞAS3.0!
AS3.0勉強中です。
やっとこさ敵出して、弾出して、敵を破壊する所まで出来ました。
AS2.0の時とは全く別の組み方なので単純比較では無いですが、すげー軽い!
テストで36方向弾とかやってみた・・・・

実際の動きはこちらで確認出来ます
※クリックで発射(ちなみに敵のHPは5)
前に作ったシューティングと同じような匂いがするのは気のせいです・・・・
まだまだ先は長そうですが、地道に勉強していきまっす。
.
やっとこさ敵出して、弾出して、敵を破壊する所まで出来ました。
AS2.0の時とは全く別の組み方なので単純比較では無いですが、すげー軽い!
テストで36方向弾とかやってみた・・・・

実際の動きはこちらで確認出来ます
※クリックで発射(ちなみに敵のHPは5)
前に作ったシューティングと同じような匂いがするのは気のせいです・・・・
まだまだ先は長そうですが、地道に勉強していきまっす。
.

