我在我的項目中使用starling和tweenMax框架。 我碰到的麻煩是這樣的:嵌套的碰撞椋鳥as3
爲了沿不同路徑設置動畫,我使用了tweenmax。
有一個_leaderEnemy沿着一條路徑進行動畫,並且我將其他_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);
}
}
這可能是一些愚蠢的事我做的。但我一直無法解決這個問題。
任何幫助,將不勝感激。
我有一些其他問題:
- 我可以檢查與_shooterHero碰撞從_shooterEnemy的類裏面?
我曾嘗試:
if (this.bounds.intersects(stage.getChildByName("_hero"))){
}
雖然它沒有工作。
- 我可以檢查一個敵人與舞臺上的任何事物的碰撞,因此我可以爲他的每個聯繫人分配單獨的功能嗎?例如:用英雄命中:死;擊中另一個敵人:轉身
如果您需要更多信息,我會很樂意提供。
謝謝。
嘗試使用'for each ... in'循環。 – David 2013-04-07 15:10:31