0

こんにちは、Flash AS2 を使用して簡単なゲームを作成していますが、ステージからオブジェクトを削除する方法がわかりません。

次のコードを持つ「敵」と呼ばれる単純なオブジェクトがあります。

 onClipEvent(enterFrame) {  
             if (hitTest(_root.charBoy)) _root.life--;
             function remove()  { 
             this.removeMovieClip();    
             } 
  }

次に、「Bullet」オブジェクトが次のようにヒットしたときに remove 関数を呼び出そうとします。

if (hitTest(_root.Enemy))
    {
        _root[Enemy].remove();
        this.removeMovieClip();
    }

しかし、発生する唯一のことは、Bullet オブジェクトだけが削除され、敵 AI はステージにとどまることです。

関数の宣言で次のバリエーションも試しました。

onClipEvent(load)
{
    function remove()
    {
        this.removeMovieClip();
    }
    remove();   
}
onClipEvent(enterFrame) {
    if (hitTest(_root.charBoy)) _root.life--;
}

onClipEvent(enterFrame) {
    if (hitTest(_root.charBoy)) _root.life--;
    function remove()
    {
        this.removeMovieClip();
    }
    remove();
}

それでも同じことをします。私も試してみstage.removeChild(this)ましたが、何もしません。

これを解決する方法を教えてください。敵をステージに設定し、単純な AI の動きをしており、プログラムで複製していません。

Bullet特定のオブジェクトにヒットしたときにステージからそれらを削除するにはどうすればよいですか?

私のBulletオブジェクトはすでにそれらとhitsそれらを追跡できるので、Bulletそれ自体はステージから削除されますが、敵オブジェクトは残ります。

4

1 に答える 1

0

「敵」を引用符で囲んでみてください

_root["Enemy"].remove();

または上で提案したように

_root.Enemy.remove();
于 2013-05-20T01:09:28.383 に答える