我在我的项目中使用 starling 和 tweenMax 框架。我遇到的麻烦是这样的:
为了沿不同路径制作动画,我使用的是 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);
}
}
这可能是我正在做的愚蠢的事情。但我一直无法解决这个问题。
对此的任何帮助将不胜感激。
我还有一些其他问题:
- 我可以在 _shooterEnemy 的班级内检查与 _shooterHero 的碰撞吗?
我努力了:
if (this.bounds.intersects(stage.getChildByName("_hero"))){
}
虽然它没有用。
- 我可以检查一个敌人与舞台上的所有东西的碰撞,以便我可以为他的每个联系人分配单独的功能吗?例如:击中英雄:死;与另一个敌人击中:转身
如果您需要更多信息,我很乐意提供。
谢谢你。