显示地址:http://demo.jb51.net/js/2011/hunt/index.htm播放。往下看,看到地址栏里的字母o!你用O向A射击,用键盘上的左右箭头移动字母O,当O移动到A时,按空格键射击!游戏计时30秒,按ESC键重启。注意:请使用系统附带的IE浏览器打开此链接。
你用O向A射击,用键盘上的左右箭头移动字母O,当O移动到A时,按空格键射击!
核心代码:复制代码代码如下:(函数(){ var Animal,Gamevar __bind=function(fn,me){ return function(){ return fn。应用(我,论点);};};Game=(function(){ function Game(){ this。收到的事件=_ _ bind(这。事件收到,这);this.update=__bind(this.update,this);这个。level=1;this.levelSize=60this。playerlocation=这个。级别大小/2;这个。start();}游戏。原型。start=function(){ var num;这个。点数=0;this.startTime=新日期;这个。时限=30天。动物=[];for(num=4;num=1;num-){这个。add animal();}返回这个。interval=setInterval(这。更新,1000/30);};游戏。原型。game over=function(){ clearInterval(这个。间隔);返回位置。哈希='在(this.elapsedTime())"秒中你共射中了"这点"个a!(按经济社会委员会键重新开始)';};游戏。原型。elapsedtime=function(){ return math。楼层(((新日期)).getTime()-这个。开始时间。getTime())/1000);};游戏。原型。add animal=function(){ var animal;动物=新动物(数学。地板(数学。random()*这个。级别大小));把这个还给动物。推(动物);};游戏。原型。移除动物=功能(死亡动物){ var animal返回this.animals=(function() { var _i,_len,_ref,_ results _ ref=this . animals _ results=[];对于(_i=0,_ len=_ ref . len _ I _ len _ I){ animal=_ ref[_ I];如果(动物!==死动物){ _结果。推(动物);} } return _ results})。叫(这个);};游戏。原型。is animal lat=function(position){ var animal,matches matches=(function(){ var _ I,_len,_ref,_ results _ ref=this . animals _ results=[];对于(_i=0,_ len=_ ref . len _ I _ len _ I){ animal=_ ref[_ I];if(数学。地板(动物。position==position){ _ results。推(动物);} } return _ results})。叫(这个);返回匹配项[0];};游戏。原型。update=function(){ var animal,position,timeLeft,url,_i,_len,_ Refrel=[];_ ref=this .动物对于(_i=0,_ len=_ ref . len _ I _ len _ I){ animal=_ ref[_ I];动物。更新(这个。LeveSize);} while(网址。长度这个。LeveSize){ position=URL。长度;if(position===this。玩家位置){ if(this。是animalat(这。玩家位置)){ URL。push(' @ ');} else { URL。推动(' O ');} } else if(this。是动物(位置)){ URL。推动(' a ');} else { URL。push('-');} }剩余时间=这个。时间限制-这个。elapsedtime();if(剩余时间=0){返回这个。game over();} else { if(timeLeft 10){ timeLeft=' 0 ' timeLeft;}位置。hash=(“|”time left“|”)URL。join(" ")(" | " timeLeft);返回文档。=' Points ' this.points } }游戏。原型。收到的事件=函数(事件){ var animal开关(事件。什么){案例37:这个。player location-=1;如果(这个。玩家位置0){返回此。玩家位置=这个。级别大小-1;} breakcase 39:这个。player location=1;返回这个。playerlocation %=这个。级别大小;案例38:案例32:动物=这个。是animalat(这。游戏位置);如果(动物){这个。点数=1;this.removeAnimal(动物);控制台。日志(这个。动物。长度);如果(这个。动物。length===0){返回这个。游戏结束();} } breakcase 27:返回这个。start();} };回归游戏;})();动物=(函数(){函数动物(位置){ this.position=positionthis。速度变化=数学。random()* 0.5;这个。速度指数=数学。随机()*数学.PI;这个。阻尼器=0.4;}动物。原型。update=function(级别大小){ this。速度指数=数学。random()*这个。速度变化;这个。位置=数学。罪恶(这。速度指数)*这个。阻尼器;this . position %=levelSizeif(this。位置0){返回这个。位置=级别大小;} };动物回归;})();$(function(){ var game;Game=new Game();返回$(文档)。键盘向下(游戏。收到的事件);});}).叫(这个);