Я использую рамки скворца и 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"))){
}
хотя это не сработало.
- Могу ли я проверить наличие столкновения одного врага со всем на сцене, поэтому я могу назначить индивидуальные функции для каждого его контакта? Например: hit with hero: die; ударить другим врагом: развернуться
Если вам нужна дополнительная информация, я буду рад предоставить его.
Thank you.
Попробуйте использовать 'для каждого ... в цикле. – David