シューティングゲーム:自機が弾を撃つスクリプト

// **** 自機アニメーション ****

// クリックしたら
myHitArea_mc.addEventListener (MouseEvent.MOUSE_UP, xShipClick);

// 自弾発射時のアクション
function xShipClick (eventObject:MouseEvent):void {
this.myShip.myShipHead.gotoAndPlay("neckDown");

// 自弾を配置する
var myMame:MovieClip = new mame();
stage.addChild(myMame);
myMame.x = (this.myShip.x);
myMame.y = (this.myShip.y);

// ステージ高さを越えるまでは自弾が10ずつ飛ぶ
addEventListener (Event.ENTER_FRAME, xMameShoot);
function xMameShoot (eventObject:Event):void {
if (myMame.y > stage.y) {
myMame.y -= 10;
} else if (myMame.y < stage.y) {
// 自弾インスタンスを消去
stage.removeChild(myMame);
// ENTER_FRAMEの一連のイベントを消去
removeEventListener(Event.ENTER_FRAME, xMameShoot);
}
}
}


ちょ、何でか知らんが動いた〜!!!
removeChildに苦しめられた・・・。


addChildで配置しているmyMameは、ライブラリに置いているムービークリップで、『リンケージ→actionscriptに書き出し→クラス名:mame』と設定してあります。


書いた場所:メインフレーム(って言うのか?一番親のフレーム)


myHitArea:アルファを0にしてステージを覆ったヒットエリア。これで自機以外の場所をクリックしても自弾が発射される。


自弾が超連射可能という罠。インベーダーも目じゃないぜ。

本当は自弾が消えるまでは次のが打てないようにしたいんですが・・・。