//渲染定时器 _render_t:null, _render:function(){ this._render_t=setInterval(function(){ var enemys=enemyPlaneFactory.enemys; for(var i in enemys){ var enemy=enemys[i]; enemy.move(0,enemy.speed);
var bullets=bulletFactory.bullets; for(var i in bullets){ var bullet=bullets[i]; bullet.move(0,-bullet.speed);
for(var i in enemys){ var enemy=enemys[i]; //判断子弹是否击中敌机,如果击中则隐藏子弹,杀死敌机,增加积分.. if(bullet.y>10 &&bullet.x>enemy.x &&bullet.x<enemy.x+enemy.e.width &&bullet.y<enemy.y+enemy.e.height){ enemy.isDied=true; bullet.e.style.top=-bullet.e.height; selfPlane.score+=50; Util.scoreSpan.innerHTML=selfPlane.score+""; } } }
},1000/15); }, //射击定时器 _startShoot_t:null, _startShoot:function(){ var i=0; var bullets=bulletFactory.bullets; var bulletsCount=bullets.length; this._startShoot_t=setInterval(function(){ if(i>=bulletsCount){ i=0; } var bullet=bullets[i]; bullet.moveTo(selfPlane.x+selfPlane.e.width/2-bullet.e.width/2,selfPlane.y-bullet.e.height-3); i++; },300); }, keyMove:10, _initEvent:function(){ window.onkeydown=function(e){ /* 37:左 38:上 39:右 40:下 */ var keynum; var left=37,up=38,right=39,down=40; if(window.event){// IE keynum = e.keyCode }else if(e.which) {// Netscape/Firefox/Opera keynum = e.which }
switch(keynum){ case left: selfPlane.move(-Main.keyMove,0); break; case up: selfPlane.move(0,-Main.keyMove); break; case right: selfPlane.move(Main.keyMove,0); break; case down: selfPlane.move(0,Main.keyMove); break;
default: break; }
//console.log(keynum); }
}
}entity.js://自身的对象 var selfPlane={ x:0, y:0, score:0, e:null, init:function(){ this.x=(Util.windowWidth-Util.selfPlaneElement.width)/2;//相对于父窗体的x偏移(css:left) this.y=Util.windowHeight-Util.selfPlaneElement.height;//相对于父窗体的y偏移(css:top) this.e=Util.selfPlaneElement;//对应的dom元素 Util.selfPlaneElement.style.left=this.x+"px"; Util.selfPlaneElement.style.top=this.y+"px"; Util.parentElement.appendChild(this.e); }, move:function(moveX,moveY){ var x=this.x+moveX; var y=this.y+moveY;