0

シンプルな as2 シューターを作ろうとしていますが、敵を撃とうとすると、弾丸が通り抜けて敵を取り除けません。入れようとした if (hitTest(_root.vihollinen)==true ){ _root.vihollinen.remove(); this.removeMovieClip(); } が何も起こらない コーディングについてあまり知らないので、ほとんどのコードはコピペだけですが、学ぼうとしています! https://www.dropbox.com/s/58u34tbeve6oile/game.zip

4

1 に答える 1

0

最も重要な問題は、敵がコードを理解するためにインスタンス名を必要とすることです。敵のムービークリップをクリックして、上部のフィールドに追加vihollinenするだけです。Instance Name

次に、箇条書きのコードは近いですが、いくつかの調整が必要です。コードは次のとおりです。

_root["bullet" + bulletsFired].onEnterFrame = function(){
    this._x += this.xmov;
    this._y += this.ymov;
    if (hitTest(_root.vihollinen)==true){
        _root.vihollinen.remove();
        this.removeMovieClip();
    }
};
  1. onEnterFrame関数でそのようなハンドラーを使用したことがある場合は、次のように、常に現在のオブジェクトを で参照することをお勧めしますthisif(this.hitTest(_root.vihollinen) == true){

  2. remove()ActionScript2 関数ではありません。unloadMovie()代わりに、次のように使用してみてください。_root.vihollinen.unloadMovie()

これら 3 つのことを変更すると、コードが機能するようになります。コードの各部分を確認し、できる限り理解するようにしてください。各部分が存在する理由を理解するのに長い時間がかかる場合でも、長期的には物事がはるかに簡単になります。 !

于 2013-10-04T14:46:18.933 に答える