メイン 迷える子羊の部屋【初心者専用】 attachMovieで複製したMCがなぜか消える | 投稿するにはまず登録を |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
10-feet | Åê¹ÆNo.37254 投稿日時: 2008-1-21 17:58 |
新米 居住地: 投稿: 25
使用環境:
|
attachMovieで複製したMCがなぜか消える 前回、初投稿した際の自分の発言で気分を害された人がいましたら、この場を借りて謝罪します。
無知でした。申し訳ないです。 それでは本題に入りたいと思います。 問題点:attachMovieで複製した弾と、同じくattachMovieで複製した敵がいます。 弾が敵に当たった瞬間、爆発してムービークリップ上から敵が消える仕様です。 この時に当たった敵以外の敵が爆発モーション無しで一緒に消えてしまう現象が起きて困っています。 爆発して消えた敵は再度複製されるのですが、弾に当たらずに消えた敵は複製されませんでした。 弾は3発(設定通りに)発射可能で、それぞれ存在する敵全てに当たり、当たれば消えます。 敵も最初は10体(設定通りに)出現します。 何が原因かわからない状態です。ご教授頂けたら幸いです。 以下がメイン上に置かれたMC(インスタンス名:roboBody)に書かれているASです。 尚、移動系のASは長くなるために省略しています。 <code> onClipEvent (load) { //attachMovie の名前、深度につかう変数 a = 0; //ムービー上のミサイルの数を数える変数 bulletcounter = 0; //ミサイルの最大連射数を持つ変数 maxbullet = 3; } onClipEvent(enterFrame){ //スペースキーが押された瞬間のみinput_xにtrueを入れる if ( Key.isDown(Key.SPACE) && key_space == 0 ) { input_x = true; } key_space = Key.isDown(Key.SPACE); //input_xがtrueで、ムービー上の弾の数を数える変数bulletcounterrが //最大連射数(maxbullet)より小さいときに{}内のスクリプト実行 if (input_x == true && bulletcounter<maxbullet){ //attachMovie()で弾のムービークリップを生成 bulletName = "bulletMC" + a; _root.field.attachMovie("bullet", bulletName , a); //生成したムービークリップを、発射キャラの位置に移動 _root.field[ bulletName ]._x = this._x - 3; _root.field[ bulletName ]._y = this._y - 50; fscommand("play_sound","0,1"); //発射音SE //ミサイルが一発発射されたのでbulletcounterを1増やす bulletcounter++; //次attachMovieで使うための数字を1増やす、最大連射数に達したら深度を0に戻す if (a < maxbullet){ a++; } else if (a == maxbullet){ a = 0; } input_x = false; } } </code> 以下がライブラリにあるbullet(MC)に書かれているASです。 識別子は"bullet"です。 <code> 1フレーム目 this._y -=15; 2フレーム目 if ( this._y < -80 ) { _root.roboBody.bulletcounter -= 1; this.removeMovieClip(); } else { this.gotoAndPlay(_currentframe-1); } </code> そして以下がufoを出すためにメイン>field(インスタンス名)の中に設置したenemyStart(インスタンス名)に書いたASです。 <code> onClipEvent (load) { //attachMovie の名前、深度につかう変数 ufo_a = 0; //ムービー上のufoの数を数える変数 ufocounter = 0; //ufoの最大出現数を持つ変数 maxufo = 10; } onClipEvent(enterFrame){ if ( ufocounter<maxufo){ //attachMovie()でufoのムービークリップを生成 ufoName = "ufoMC" + ufo_a; _root.field.map.attachMovie("ufo", ufoName , ufo_a); _root.field.map[ufoName]._x = Math.floor( Math.random() * 300 ) + 35; _root.field.map[ufoName]._y = Math.floor( Math.random() * -200 ) - 20; //ufoが1体出現されたのでufocounterを1増やす ufocounter++; //次attachMovieで使うための数字を1増やす、最大出現数に達したら深度を0に戻す if (ufo_a < maxufo){ ufo_a++; } else if (ufo_a == maxufo){ ufo_a = 0; } } } </code> そして以下がライブラリのufo(MC)の"start(フレーム名)"に書かれたASです。 識別子は"ufo"です。 <code> enMaxHitPoint = 1; enHitPoint = enMaxHitPoint; ufoSpeed = 2; //UFOを左へ移動させ、画面から消えたら右に戻すファンクション function ufoMove( ufoSpeed ){ this._y += ufoSpeed; num1 = 650; if( this._y > num1 ){ this._x = Math.floor( Math.random() * 300 ) + 35; this._y = Math.floor( Math.random() * -200 ) - 50; this.enHitPoint = enMaxHitPoint; } } //プレーヤーの攻撃を受けたときの設定 function attacked(){ for (i = 0; i < 4; i++){ bullethit = "bulletMC" + i; if (_root.field[ bullethit ] != null){ if( this._y > 30 ){ //bulletとthis(ufo)が触れていればtrueを返す if( _root.field[ bullethit ].hitTest( this.ufo ) ){ this.enHitPoint -= 1; _root.field[ bullethit ].removeMovieClip(); _root.roboBody.bulletcounter -= 1; } } } } } //ヒットポイントが0になったら消える function dead(){ if( this.enHitPoint < 1 ){ _root.score += 100; this.gotoAndPlay("dead"); } } this.stop(); </code> そして以下がufo(MC)内の"dead(フレーム名)"の最後(爆発後) に書かれたASです。 <code> _root.field.enemyStart.ufocounter -= 1; this.removeMovieClip(); </code> 最後に、ufo(MC)内の本体(レイヤー名)に置いたMC(インスタンス名は"ufo")に書いたASです。 <code> onClipEvent(enterFrame){ _parent.ufoMove( _parent.ufoSpeed ); _parent.attacked(); _parent.dead(); } </code> 関係ありそうな部分を全て載せた為、長くなってしまいました。 弾を出すために1度trueを入れているのは「そうしなくてはいけない」からです。 そこについての突っ込みは無しで・・・。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» attachMovieで複製したMCがなぜか消える | 10-feet | 2008-1-21 17:58 |
Re: attachMovieで複製したMCがなぜか消える | gaienboy | 2008-1-21 18:30 |
Re: attachMovieで複製したMCがなぜか消える | 10-feet | 2008-1-21 19:17 |
Re: attachMovieで複製したMCがなぜか消える | 10-feet | 2008-1-21 19:33 |
Re: attachMovieで複製したMCがなぜか消える | mayor | 2008-1-22 1:29 |
Re: attachMovieで複製したMCがなぜか消える | 10-feet | 2008-1-22 12:49 |
Re: attachMovieで複製したMCがなぜか消える | gaienboy | 2008-1-22 13:54 |
Re: attachMovieで複製したMCがなぜか消える | mayor | 2008-1-22 13:54 |
Re: attachMovieで複製したMCがなぜか消える | 10-feet | 2008-1-22 15:08 |
Re: attachMovieで複製したMCがなぜか消える | mayor | 2008-1-22 15:24 |
Re: attachMovieで複製したMCがなぜか消える | 10-feet | 2008-1-22 15:42 |
Re: attachMovieで複製したMCがなぜか消える | mayor | 2008-1-22 16:14 |
Re: attachMovieで複製したMCがなぜか消える | 10-feet | 2008-1-24 18:49 |
投稿するにはまず登録を | |