0

プロジェクトで starling と tweenMax フレームワークを使用しています。私が遭遇している問題はこれです:

さまざまなパスに沿ってアニメーション化する目的で、tweenmax を使用しています。

パスに沿ってアニメーション化する _leaderEnemy が 1 つあり、他のいくつかの _shooterEnemy (それらは同じクラスです) をそれに押し込みます。

public function createEnemies(enemyNo:int, path:Array, offset:int):void
{
    for(var i:uint=1;i<=enemyNo;i++){
        if (i==1){
            _leaderCount++;
            _leaderEnemy = new ShooterEnemy();
            _leaderEnemy.x=600;
            _leaderEnemy.y=300;
            _leaderEnemy.name="_shooterEnemy"+_leaderCount;
            this.addChild(_leaderEnemy);
            leaderEnemyArray.push(_leaderEnemy);
        }
        else
        {
            _leaderCount++;
            _shooterEnemy= new ShooterEnemy();
            _shooterEnemy.x=0;
            _shooterEnemy.y=(offset*(i-1));
            _shooterEnemy.name="_shooterEnemy"+_leaderCount;
            trace("no: "+_shooterEnemy.name);
            leaderEnemyArray.push(_shooterEnemy);
            _leaderEnemy.addChild(_shooterEnemy);
        }
    }

ここで、スターリングを使用して、_leaderEnemy とその内部の _shooterEnemy のそれぞれと _shooterHero との衝突をチェックしたいと思います。

この配列を実行すると、グループ全体、つまり _leaderEnemy との衝突が正常にチェックされますが、その中の個々の衝突はチェックされません。

技術的には、次の方法でこれを実行できるはずです。

var Track:Object;
for(var i:uint=0;i<leaderEnemyArray.length;i++) {
    Track=leaderEnemyArray[i];      
    if (Track.bounds.intersects(_shooterHero.bounds)){
        Track.rotation=deg2rad(70);             
    }
}

私がやっていることは愚かなことかもしれません。しかし、私はこれを解決できませんでした。

これに関する助けをいただければ幸いです。

私が持っている他のいくつかの質問:

  1. _shooterEnemy のクラス内から _shooterHero との衝突をチェックできますか?

私が試してみました:

if (this.bounds.intersects(stage.getChildByName("_hero"))){
}

うまくいきませんでしたが。

  1. ステージ上のすべてのものとの 1 つの敵の衝突をチェックして、各接触に個別の機能を割り当てることができますか? 例: ヒーローでヒット: ダイ; 別の敵にぶつかる: 振り向く

さらに情報が必要な場合は、喜んで提供いたします。

ありがとうございました。

4

2 に答える 2