プロジェクトで 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);
}
}
私がやっていることは愚かなことかもしれません。しかし、私はこれを解決できませんでした。
これに関する助けをいただければ幸いです。
私が持っている他のいくつかの質問:
- _shooterEnemy のクラス内から _shooterHero との衝突をチェックできますか?
私が試してみました:
if (this.bounds.intersects(stage.getChildByName("_hero"))){
}
うまくいきませんでしたが。
- ステージ上のすべてのものとの 1 つの敵の衝突をチェックして、各接触に個別の機能を割り当てることができますか? 例: ヒーローでヒット: ダイ; 別の敵にぶつかる: 振り向く
さらに情報が必要な場合は、喜んで提供いたします。
ありがとうございました。