游戏里面有多个甚至几十个“敌人”时,如何处理“遍历”会比较合适?我想前面有人发的二维碰撞模型的确不简单,我这个是没事做着玩的:
Mouse.hide();
varsolvedNum=0,enemyTotal=16,enemyOver=0,enemySolved=0;
for(i=1;i<=enemyTotal;i++){
temp=box["ball"+i]._xscale=box["ball"+i]._yscale=Randoms(20,100);
box["ball"+i].speed=temp/28;
box["ball"+i].nextFrames=2;
box["ball"+i].onPress=function(){
this.isHitted=true;
};
box["ball"+i].onEnterFrame=function(){
if(this.isHitted){
this.gotoAndPlay(this.nextFrames);
this.scoreBar.scores.text="+"+Math.floor(1000/this._xscale);
this.nextFrames++;
if(this.nextFrames>=16){
deletethis.onEnterFrame;
solvedNum+=Math.floor(1000/this._xscale);
enemyOver++;
enemySolved++;
}
}
ballMove(this);
};
}
this.onEnterFrame=function(){
mouseHand._x=_root._xmouse;
mouseHand._y=_root._ymouse;
info="您目前的得分是:"+solvedNum;
if(enemyOver>=enemyTotal)info+=(enemySolved<enemyTotal)?"这么简单都失败,回家练练吧!!":"这种挑战都完成了,您还有什么不能做到的!!";
};
functionballMove(target){
if(target._y<380){
target._y+=target.speed;
}else{
target._y=380;
deletetarget.onEnterFrame;
enemyOver++;
}
}
functionRandoms(min:Number,max:Number):Number{
varrandomNum:Number=Math.floor(Math.random()*(max-min+1))+min;
returnrandomNum;
}