engine_106.js 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. var ENGINE_VERSION="1.0.6";
  2. function dot_Anim(a,b,c,d){var e=this;this.name=a;this.timing=1/b;this.loop=c;this.frames=d;this.numberOfFrames=this.frames.length;this.timer=this.currentFrameIndex=0;this.finished=!1;this.dirty=!0;this.currentFrame=0;this.parent=null;this.reset=function(){this.timer=this.currentFrameIndex=0;this.finished=!1;this.dirty=!0;this.currentFrame=this.frames[this.currentFrameIndex]};this.update=function(a){this.finished||(this.timer+=a,this.timer>this.timing?(this.currentFrameIndex++,this.dirty=!0,this.currentFrameIndex>=
  3. this.numberOfFrames&&(this.currentFrameIndex=0,this.loop||(this.finished=!0)),this.currentFrame=this.frames[this.currentFrameIndex],this.timer=0):e.dirty=!1)};this.play=function(){this==this.parent.currentAnim?this.parent.currentAnim.reset():(e.parent.currentAnim=e,e.reset())};this.stop=function(){this.finished=!0}}
  4. function dot_Sprite(){this.self=this;this.load=function(a,b,c,d,e,f,g,h){this.image=a;this.frameWidth=b;this.frameHeight=c;this.offsetX=d;this.offsetY=e;this.w=f;this.h=g;this.visible=!0;this.scene=this.currentAnim=null;this.flip=0;this.frames=[];this.numberOfFrames=0;this.alpha=1;a=this.image.height/this.frameHeight;d=this.image.width/this.frameWidth;for(e=0;e<a;e++)for(f=0;f<d;f++)this.frames[this.numberOfFrames]={x:f*b,y:e*c},this.numberOfFrames++;h&&(this.numberOfFrames/=2)};this.createAnimation=
  5. function(a,b,c,d){a=new dot_Anim(a,b,c,d);a.parent=self;this.currentAnim=a;this.currentAnim.reset();return a};this.render=function(a,b,c){var d=this.currentAnim.currentFrame+this.flip*this.numberOfFrames;b=Math.round(this.x-this.offsetX+b);c=Math.round(this.y-this.offsetY+c);1!=this.alpha&&(a.globalAlpha=this.alpha);a.drawImage(this.image,this.frames[d].x,this.frames[d].y,this.frameWidth,this.frameHeight,b,c,this.frameWidth,this.frameHeight);a.globalAlpha=1};this.reset=function(a,b){this.x=Math.floor(a);
  6. this.y=Math.floor(b);this.visible=this.active=!0};this.deactive=function(){this.visible=this.active=!1};this.update=function(){};this.updateAnimation=function(a){this.currentAnim&&this.currentAnim.update(a)}}
  7. function dot_Font(){this.load=function(a,b,c,d,e,f,g){this.image=a;this.charOffsetX={};this.charOffsetY={};this.charHeight=d*f;this.lineSpacing=e*f;this.multiplySize=f;e=d=a=0;this.charWidths={};for(var h=0;h<b.length;h++)f=b[h],"\n"===f?(a=0,d+=this.charHeight):(this.charOffsetX[f]=a,this.charOffsetY[f]=d,this.charWidths[f]=(c[e]+1)*this.multiplySize,a+=this.charWidths[f],e++);this.offsetBlackWhiteY=g?Math.round(this.image.height/2):0};this.write=function(a,b,c,d,e,f,g){for(var h=b,k,j,l=f;l<g;l++)j=
  8. d[l],f=this.charOffsetX[j],k=this.charOffsetY[j],void 0===f||void 0===k?(h+=this.charWidths[" "],"\n"===j&&(h=b,c+=this.lineSpacing)):(e?a.drawImage(this.image,f,k+this.offsetBlackWhiteY,this.charWidths[j],this.charHeight,h,c,this.charWidths[j],this.charHeight):a.drawImage(this.image,f,k,this.charWidths[j],this.charHeight,h,c,this.charWidths[j],this.charHeight),h+=this.charWidths[j])};this.getTextSize=function(a){for(var b=0,c=0,d=0,e,f,g,h=0;h<a.length;h++)g=a[h],e=this.charOffsetX[g],f=this.charOffsetY[g],
  9. void 0===e||void 0===f?(b+=this.charWidths[" "],"\n"===g&&(d<b&&(d=b),b=0,c+=this.lineSpacing)):b+=this.charWidths[g];d<b&&(d=b);return{w:d,h:c+this.charHeight}}}
  10. function dot_NumberFont(){this.load=function(a,b,c){this.image=a;this.charWidth=b;this.charHeight=c};this.write=function(a,b,c,d,e,f){c-=this.charWidth;for(var g=0,g=!0;0<f;){if(0<b||g)g=b%10,a.drawImage(this.image,this.charWidth*g,0,this.charWidth,this.charHeight,c,d,this.charWidth,this.charHeight),b=Math.floor(b/10),c-=this.charWidth,g=e;f--}};this.writeCentered=function(a,b,c,d,e,f){for(var g=0,h=0,h=!0,k=f,j=b;0<k;){if(0<j||h)j=Math.floor(j/10),g+=this.charWidth,h=e;k--}k=f;h=!0;c=Math.floor(c+
  11. 0.5*g)-this.charWidth;for(j=b;0<k;){if(0<j||h)h=j%10,a.drawImage(this.image,this.charWidth*h,0,this.charWidth,this.charHeight,c,d,this.charWidth,this.charHeight),j=Math.floor(j/10),c-=this.charWidth,h=e;k--}}}
  12. function dot_TalkBubble(){this.reset=function(a,b,c,d,e,f,g,h,k){this.image=a;this.text="";this.x=f;this.y=g;this.offsetX=b;this.offsetY=c;this.w=h;this.font=k;a=d.split(" ");for(d=c=b=0;d<a.length;d++)c=k.getTextSize(a[d]).w,b+c>this.w?(this.text+="\n"+a[d]+" ",b=c+k.charWidths[" "]):(this.text+=a[d]+" ",b+=c+k.charWidths[" "]);this.timer=this.currentIndex=0;this.maxTimer=1/e;this.justFinished=this.finished=!1};this.update=function(a){this.justFinished=!1;this.finished||(this.timer+=a,this.timer>
  13. this.maxTimer&&(this.timer=0,this.currentIndex++,this.currentIndex==this.text.length&&(this.justFinished=this.finished=!0)))};this.render=function(a,b,c,d){a.drawImage(this.image,Math.floor(this.x+b-this.offsetX),Math.floor(this.y+c-this.offsetY));this.font.write(a,Math.floor(this.x+b),Math.floor(this.y+c),this.text,d,0,this.currentIndex)}}
  14. function dot_Math(){this.load=function(){this.m_sin=Array(1440);this.m_cos=Array(1440);for(var a=0,b=0;1440>b;b++)this.m_sin[b]=Math.sin(a*PI/180),this.m_cos[b]=Math.cos(a*PI/180),a+=0.25;this.msquare=Array(600);for(b=0;b<this.msquare.length;b++)this.msquare[b]=b*b};this.sqrt=function(a){a=Math.floor(a);a=0<a?a:-a;for(var b=0,c=this.msquare.length-1,d=b+c>>1;b<c-1;){if(this.msquare[d]>a)c=d;else if(this.msquare[d]<a)b=d;else break;d=b+c>>1}return d};this.sin=function(a){0>a?a+=360:360<=a&&(a-=360);
  15. return this.m_sin[Math.floor(4*a)]};this.cos=function(a){0>a?a+=360:360<=a&&(a-=360);return this.m_cos[Math.floor(4*a)]};this.seed_w=1234;this.seed_z=5678;this.randomize=function(){var a=(new Date).getTime();this.seed_w=a%32E3;this.seed_z=a%65535};this.rand=function(){this.seed_z=36969*(this.seed_z&65535)+(this.seed_z>>16);this.seed_w=18E3*(this.seed_w&65535)+(this.seed_w>>16);return Math.abs((this.seed_z<<16)+this.seed_w)};this.random=function(){return 1/(this.rand()%10)};this.randomIn=function(a,
  16. b){return 1<b?a+this.rand()%b:a+this.random()*b}}
  17. var EASE_NONE=0,EASE_QUAD_IN=1,EASE_QUAD_OUT=2,EASE_QUAD_INOUT=3,EASE_CUBE_IN=4,EASE_CUBE_OUT=5,EASE_CUBE_INOUT=6,EASE_QUART_IN=7,EASE_QUART_OUT=8,EASE_QUART_INOUT=9,EASE_QUINT_IN=10,EASE_QUINT_OUT=11,EASE_QUINT_INOUT=12,EASE_SIN_IN=13,EASE_SIN_OUT=14,EASE_SIN_INOUT=15,EASE_BOUNCE_IN=16,EASE_BOUNCE_OUT=17,EASE_BOUNCE_INOUT=18,EASE_CIRC_IN=19,EASE_CIRC_OUT=20,EASE_CIRC_INOUT=21,EASE_EXPO_IN=22,EASE_EXPO_OUT=23,EASE_EXPO_INOUT=24,EASE_BACK_IN=25,EASE_BACK_OUT=26,EASE_BACK_INOUT=27,PI=3.1415926,PI2=
  18. 1.5707963,B1=0.363636363636364,B2=0.727272727272727,B3=0.545454545454545,B4=0.909090909090909,B5=0.818181818181818,B6=0.954545;
  19. function dot_Tween(){this.duration=this.duration_inverse=this.t=0;this.functionId=EASE_NONE;this.targetRangeNumber=this.targetLowest=this.timer=0;this.finished=!0;this.delta=0;this.reset=function(a,b,c,d){this.duration_inverse=1/d;this.functionId=c;this.timer=0;this.targetLowest=a;this.targetRangeNumber=b-a;this.duration=d;this.finished=!1;this.t=0;this.delta=this.targetLowest;this.update(0)};this.replay=function(){this.finished=!1;this.t=this.timer=0;this.delta=this.targetLowest;this.update(0)};
  20. this.update=function(a){if(!this.finished)if(this.timer+=a,this.timer>this.duration)this.finished=!0,this.t=1,this.delta=this.targetLowest+this.targetRangeNumber;else{a=this.t=this.timer*this.duration_inverse;switch(this.functionId){case EASE_QUAD_IN:a*=a;break;case EASE_QUAD_OUT:a=-a*(a-2);break;case EASE_QUAD_INOUT:a=0.5>=a?2*a*a:1-2*--a*a;break;case EASE_CUBE_IN:a*=a*a;break;case EASE_CUBE_OUT:a=1+--a*a*a;break;case EASE_CUBE_INOUT:a=0.5>=a?4*a*a*a:1+4*--a*a*a;break;case EASE_QUART_IN:a*=a*a*a;
  21. break;case EASE_QUART_OUT:a=1-(a-=1)*a*a*a;break;case EASE_QUART_INOUT:a=0.5>=a?8*a*a*a*a:(1-(a=2*a-2)*a*a*a)/2+0.5;break;case EASE_QUINT_IN:a*=a*a*a*a;break;case EASE_QUINT_OUT:a=(a-=1)*a*a*a*a+1;break;case EASE_QUINT_INOUT:a=1>(a*=2)?a*a*a*a*a/2:((a-=2)*a*a*a*a+2)/2;break;case EASE_SIN_IN:a=-Math.cos(PI2*a)+1;break;case EASE_SIN_OUT:a=Math.sin(PI2*a);break;case EASE_SIN_INOUT:a=-Math.cos(PI*a)/2+0.5;break;case EASE_BOUNCE_IN:a=1-a;if(a<B1){a=1-7.5625*a*a;break}if(a<B2){a=1-(7.5625*(a-B3)*(a-B3)+
  22. 0.75);break}if(a<B4){a=1-(7.5625*(a-B5)*(a-B5)+0.9375);break}a=1-(7.5625*(a-B6)*(a-B6)+0.984375);break;case EASE_BOUNCE_OUT:if(a<B1){a*=7.5625*a;break}if(a<B2){a=7.5625*(a-B3)*(a-B3)+0.75;break}if(a<B4){a=7.5625*(a-B5)*(a-B5)+0.9375;break}a=7.5625*(a-B6)*(a-B6)+0.984375;break;case EASE_BOUNCE_INOUT:if(0.5>a){a=1-2*a;if(a<B1){a=(1-7.5625*a*a)/2;break}if(a<B2){a=(1-(7.5625*(a-B3)*(a-B3)+0.75))/2;break}if(a<B4){a=(1-(7.5625*(a-B5)*(a-B5)+0.9375))/2;break}a=(1-(7.5625*(a-B6)*(a-B6)+0.984375))/2;break}a=
  23. 2*a-1;if(a<B1){a=7.5625*a*a/2+0.5;break}if(a<B2){a=(7.5625*(a-B3)*(a-B3)+0.75)/2+0.5;break}if(a<B4){a=(7.5625*(a-B5)*(a-B5)+0.9375)/2+0.5;break}a=(7.5625*(a-B6)*(a-B6)+0.984375)/2+0.5;break;case EASE_CIRC_IN:a=-(Math.sqrt(1-a*a)-1);break;case EASE_CIRC_OUT:a=Math.sqrt(1-(a-1)*(a-1));break;case EASE_CIRC_INOUT:a=0.5>=a?(Math.sqrt(1-4*a*a)-1)/-2:(Math.sqrt(1-(2*a-2)*(2*a-2))+1)/2;break;case EASE_EXPO_IN:a=Math.pow(2,10*(a-1));break;case EASE_EXPO_OUT:a=-Math.pow(2,-10*a)+1;break;case EASE_EXPO_INOUT:a=
  24. 0.5>a?Math.pow(2,10*(2*a-1))/2:(-Math.pow(2,-10*(2*a-1))+2)/2;break;case EASE_BACK_IN:a=a*a*(2.70158*a-1.70158);break;case EASE_BACK_OUT:a=1- --a*a*(-2.70158*a-1.70158);break;case EASE_BACK_INOUT:a*=2;if(1>a){a=a*a*(2.70158*a-1.70158)/2;break}a--;a=(1- --a*a*(-2.70158*a-1.70158))/2+0.5}this.t=a;this.delta=this.targetLowest+this.targetRangeNumber*this.t}}}
  25. var SCREEN_WIDTH=0,SCREEN_HEIGHT=0,m_elapsed,m_lastTime=0,m_resourceNumber=100,m_resourceCounter=0,m_initialized=!1,m_isReqAnimationEnabled,_reqAnimation,m_gameCanvas,m_gameContext,m_efCanvas,m_efContext,m_bgCanvas,m_fgCanvas,m_touch_x,m_touch_y,m_touch_pressed,m_time,m_screenRenew,m_paused,m_off_bgCanvas,m_off_bgContext,m_off_fgCanvas,m_off_fgContext,m_loaderRenderEnabled=0,m_effect,m_scoreContextPool,m_heartBeat,m_math,m_blinkPool,m_ignoreTouchMove;
  26. function dot_ScoreContext(){this.fontImage=img_number_context;this.charWidth=18;this.charHeight=21;this.needPlusSign=!1;this.score=this.timer=0;this.numberOfChars=1;this.accelx=this.accely=this.speedy=this.speedx=0;this.reset=function(a,b,c,d){this.numberOfChars=1;999<c?this.numberOfChars=4:99<c?this.numberOfChars=3:9<c&&(this.numberOfChars=2);this.needPlusSign=d;this.score=c;this.w=this.getWidth(this.score,!1,this.numberOfChars)+3;this.h=this.charHeight;this.needPlusSign&&(this.w+=18);this.x=Math.floor(a-
  27. 0.5*this.w);this.y=Math.floor(b-this.charHeight);this.timer=1;this.speedy=-2;this.accely=0.5;this.visible=this.active=!0};this.getWidth=function(a,b,c){for(var d=0,e=0,e=!0;0<c;){if(0<a||e)e=a%10,a=Math.floor(a/10),d=1!=e?d+(this.charWidth-3):d+6,e=b;c--}return d};this.write=function(a,b,c,d,e,f){c-=this.charWidth;for(var g=0,g=!0;0<f;){if(0<b||g)g=b%10,a.drawImage(this.fontImage,this.charWidth*g,0,this.charWidth,this.charHeight,c,d,this.charWidth,this.charHeight),b=Math.floor(b/10),c=1!=g?c-(this.charWidth-
  28. 3):c-6,g=e;f--}};this.update=function(a){this.active&&0<this.timer&&(this.timer-=a,2>this.speedy&&(this.y+=this.speedy,this.speedy+=this.accely),0>this.timer&&(this.visible=this.active=!1))};this.render=function(a,b,c){this.visible&&(b=Math.floor(this.x+b),c=Math.floor(this.y+c),this.needPlusSign&&a.drawImage(this.fontImage,180,0,18,21,b,c,18,21),this.write(a,this.score,b+this.w,c,!1,this.numberOfChars))}}
  29. function HeartBeat(){this.delta=this.angle=0;this.update=function(){this.angle+=12;360<=this.angle&&(this.angle-=360);this.delta=m_math.sin(this.angle)}}var EFFECT_FADE_IN=0,EFFECT_FADE_OUT=1;
  30. function dot_Effect(){this.finished=!0;this.fadeFunction=EFFECT_FADE_IN;this.alpha=this.timer=this.info=this.duration=0;this.tween=new dot_Tween;this.reset=function(a,b,c){this.fadeFunction=a;this.duration=b;this.info=c;a==EFFECT_FADE_IN?(this.alpha=0,this.tween.reset(0,1,EASE_NONE,b)):(this.alpha=1,this.tween.reset(1,0,EASE_NONE,b));m_efContext.fillStyle="#000000";this.finished=!1};this.update=function(a){this.tween.finished||(this.alpha=this.tween.delta,m_efContext.globalAlpha=this.alpha,m_efContext.clearRect(0,
  31. 0,m_efCanvas.width,m_efCanvas.height),m_efContext.fillRect(0,0,m_efCanvas.width,m_efCanvas.height),this.tween.update(a),this.tween.finished&&(this.fadeFunction==EFFECT_FADE_OUT&&m_efContext.clearRect(0,0,m_efCanvas.width,m_efCanvas.height),m_efContext.globalAlpha=1,this.finished=!0))}}
  32. function dot_ObjectPool(){this.array=null;this.needUpdateReverse=!1;this.create=function(a,b){this.array=Array(b);for(var c=0;c<b;c++)this.array[c]=new a;this.index=0};this.next=function(){var a=this.array[this.index];this.index++;this.index>=this.array.length&&(this.index=0);return a};this.update=function(a){if(this.needUpdateReverse)for(b=this.array.length-1;0<=b;b--)this.array[b].active&&this.array[b].update(a);else for(var b=0;b<this.array.length;b++)this.array[b].active&&this.array[b].update(a)};
  33. this.render=function(a,b,c){if(this.needUpdateReverse)for(d=this.array.length-1;0<=d;d--)this.array[d].visible&&this.array[d].render(a,b,c);else for(var d=0;d<this.array.length;d++)this.array[d].visible&&this.array[d].render(a,b,c)}}
  34. function dot_Button(){this.image=null;this.create=function(a,b,c,d,e){this.image=a;this.offsetX=b;this.offsetY=c;this.w=d;this.h=e;this.currentFrame=0};this.reset=function(a,b){this.x=Math.floor(a);this.y=Math.floor(b);this.isPressed=this.justPressed=this.justReleased=this.pressing=!1;this.currentFrame=0;this.release();this.active=!0};this.press=function(){this.justReleased=!1;this.isPressed||(this.justPressed=!0);this.isPressed=!0};this.release=function(){this.justPressed=!1;this.isPressed&&(this.justReleased=
  35. !0);this.isPressed=!1};this.update=function(){this.justReleased=this.justPressed=!1;this.pressing!=this.isPressed&&(this.isPressed?this.release():this.press())};this.render=function(a,b,c){this.visible&&(b=Math.round(this.x+b),c=Math.round(this.y+c),this.isPressed&&(c+=3),a.drawImage(this.image,this.offsetX,this.offsetY,this.w,this.h,b,c,this.w,this.h))}}var MEDAL_BRONZE=0,MEDAL_SILVE=1,MEDAL_GOLD=2,MEDAL_PLATINUM=3;
  36. function dot_Blink(){this.load(img_blink,15,15,7,7,15,15);this.blink=this.createAnimation("blink",10,!1,[0,1,2,1,0]);this.reset=function(a,b){this.x=Math.floor(a);this.y=Math.floor(b);this.blink.play(!0);this.visible=this.active=!0};this.update=function(a){this.updateAnimation(a);this.currentAnim.finished&&(this.visible=this.active=!1)}}
  37. function dot_Medal(){m_blinkPool=new dot_ObjectPool;m_blinkPool.create(dot_Blink,4);this.timer=0.1;this.h=this.w=this.y=this.x=0;this.visible=this.active=!1;this.medalType=0;this.reset=function(a,b,c){this.x=Math.floor(a);this.y=Math.floor(b);this.w=45;this.h=72;this.medalType=c;this.visible=this.active=!0};this.update=function(a){m_blinkPool.update(a);0<this.timer&&(this.timer-=a,0>=this.timer&&(this.timer=0.5,m_blinkPool.next().reset(this.x-10+Math.random()*(this.w+20),this.y-10+Math.random()*(this.h+
  38. 20))))};this.render=function(a,b,c){a.drawImage(img_medals,45*this.medalType,0,45,72,this.x,this.y,45,72);m_blinkPool.render(a,b,c)}}
  39. function dot_Time(){this.start_time=Array(10);this.duration=Array(10);this.func=Array(10);this.index=0;this.addTimeOut=function(a,b){this.start_time[this.index]=m_curTime;this.duration[this.index]=1E3*a;this.func[this.index]=b;this.index++;10==this.index&&(this.index=0)};this.update=function(){for(var a=0;10>a;a++)0<this.duration[a]&&m_curTime-this.start_time[a]>this.duration[a]&&(this.func[a](),this.duration[a]=0)}}
  40. function dot_ScorePanel(){this.image=null;this.visible=this.active=!1;this.y=this.x=0;this.tween=new dot_Tween;this.alpha=0;this.tweenAlpha=new dot_Tween;this.state=0;this.needNew=!1;this.medal=new dot_Medal;this.scoreFont=null;this.curScore=this.best=this.score=0;this.storageName=null;this.w=SCREEN_WIDTH;this.h=0;this.mileStone0=40;this.mileStone1=60;this.mileStone2=80;this.mileStone3=100;this.create=function(a,b,c,d,e,f,g){this.image=a;this.scoreFont=c;this.storageName=b;this.h=a.height;this.mileStone0=
  41. d;this.mileStone1=e;this.mileStone2=f;this.mileStone3=g};this.reset=function(a){this.visible=this.active=!0;this.x=SCREEN_WIDTH-this.image.width>>1;this.y=SCREEN_HEIGHT;this.tween.reset(this.y,SCREEN_HEIGHT-this.image.height>>1,EASE_QUAD_INOUT,0.5);this.tweenAlpha.reset(0,1,EASE_QUAD_INOUT,0.5);this.needNew=!1;this.medal.active=!1;this.medal.visible=!1;try{this.best=localStorage&&localStorage.getItem(this.storageName)?localStorage.getItem(this.storageName):0}catch(b){this.best=0}this.score=0;this.curScore=
  42. a;this.state=0};this.update=function(a){switch(this.state){case 0:this.tween.update(a);this.tweenAlpha.update(a);this.alpha=this.tweenAlpha.delta;this.y=this.tween.delta;this.tween.finished&&(this.state=1,0<this.curScore?this.tween.reset(0,this.curScore,EASE_QUAD_INOUT,1):this.tween.reset(0,this.curScore,EASE_QUAD_INOUT,0.1),this.score=0);break;case 1:this.tween.update(a);this.alpha=1;this.score=Math.round(this.tween.delta);if(this.tween.finished){if(this.score>this.best){this.best=this.score;this.needNew=
  43. !0;try{localStorage&&localStorage.setItem(this.storageName,this.best)}catch(b){}}this.score>=this.mileStone3?this.medal.reset(this.x+48,this.y+57,0):this.score>=this.mileStone2?this.medal.reset(this.x+48,this.y+57,1):this.score>=this.mileStone1?this.medal.reset(this.x+48,this.y+57,2):this.score>=this.mileStone0&&this.medal.reset(this.x+48,this.y+57,3);this.state=2}break;case 2:this.medal.active&&this.medal.update(a)}};this.render=function(a,b,c){a.globalAlpha=this.alpha;var d=Math.floor(this.x),e=
  44. Math.floor(this.y);a.drawImage(this.image,d,e);this.scoreFont.write(a,this.score,d+303,e+45,!1,8);this.scoreFont.write(a,this.best,d+303,e+108,!1,8);this.needNew&&a.drawImage(img_new,d+201,e+84);this.medal.visible&&this.medal.render(a,b,c);a.globalAlpha=1}}
  45. this.updatePreloader=function(){if(m_resourceCounter<=m_resourceNumber&&2==m_loaderRenderEnabled){m_off_fgContext.clearRect(0,0,m_off_fgCanvas.width,m_off_fgCanvas.height);var a=Math.floor((SCREEN_WIDTH-img_load_bar.width)/2),b=Math.floor(0.8*(SCREEN_HEIGHT-img_load_bar.height));m_off_fgContext.drawImage(img_brand_logo,Math.floor(0.5*(SCREEN_WIDTH-img_brand_logo.width)),Math.floor(0.5*b));m_off_fgContext.drawImage(img_load_bar,a,b);for(var c=Math.floor(5*m_resourceCounter/m_resourceNumber),a=a+this.img_load_element.width,
  46. d=0;d<c;d++)a+=2*img_load_element.width,m_off_fgContext.drawImage(img_load_element,a,b+3*img_load_element.width);m_gameContext.clearRect(m_screen_offset_x,m_screen_offset_y,m_screen_width,m_screen_height);m_gameContext.drawImage(m_off_fgCanvas,0,0,m_off_fgCanvas.width,m_off_fgCanvas.height,m_screen_offset_x,m_screen_offset_y,m_screen_width,m_screen_height);m_resourceCounter==m_resourceNumber&&(appInit(),m_resourceCounter++)}};this.gameInit=function(){};this.gameUpdate=function(){};
  47. this.touchPressed=function(){};this.touchReleased=function(){};this.backgroundUpdate=function(){};var m_screen_offset_x,m_screen_offset_y,m_screen_width,m_screen_height;
  48. this.screenResize=function(){m_screenRenew=!0;if(window.innerWidth>window.innerHeight){m_paused=!0;var a=document.getElementById("portrait");a.style.display="block";m_gameCanvas.style.display="none";m_bgCanvas.style.display="none";m_efCanvas.style.display="none"}else m_paused=!1,a=document.getElementById("portrait"),a.style.display="none",m_gameCanvas.style.display="block",m_bgCanvas.style.display="block",m_efCanvas.style.display="block",m_efCanvas.width=window.innerWidth,m_efCanvas.height=window.innerHeight,
  49. m_gameCanvas.width=window.innerWidth,m_gameCanvas.height=window.innerHeight,m_bgCanvas.width=window.innerWidth,m_screen_height=m_bgCanvas.height=window.innerHeight,m_screen_width=Math.round(SCREEN_WIDTH*m_screen_height/SCREEN_HEIGHT),m_screen_width<=window.innerWidth||(m_screen_width=window.innerWidth,m_screen_height=Math.round(SCREEN_HEIGHT*m_screen_width/SCREEN_WIDTH)),m_screen_offset_x=window.innerWidth-m_screen_width>>1,m_screen_offset_y=window.innerHeight-m_screen_height>>1};
  50. this.update=function(){m_curTime=(new Date).getTime();m_elapsed=m_curTime-m_lastTime;30<m_elapsed&&!m_paused&&(m_elapsed=0.03,m_lastTime=m_curTime,m_off_fgContext.clearRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT),m_heartBeat.update(m_elapsed),m_effect.update(m_elapsed),m_scoreContextPool.update(m_elapsed),m_time.update(m_elapsed),gameUpdate(m_elapsed,m_off_fgContext),m_scoreContextPool.render(m_off_fgContext,0,0),m_screenRenew&&(backgroundUpdate(m_off_bgContext),m_bgContext.clearRect(m_screen_offset_x,m_screen_offset_y,
  51. m_screen_width,m_screen_height),m_bgContext.drawImage(m_off_bgCanvas,0,0,m_off_bgCanvas.width,m_off_bgCanvas.height,m_screen_offset_x,m_screen_offset_y,m_screen_width,m_screen_height)),m_gameContext.clearRect(m_screen_offset_x,m_screen_offset_y,m_screen_width,m_screen_height),m_gameContext.drawImage(m_off_fgCanvas,0,0,m_off_fgCanvas.width,m_off_fgCanvas.height,m_screen_offset_x,m_screen_offset_y,m_screen_width,m_screen_height));m_isReqAnimationEnabled&&_reqAnimation(update)};
  52. this.appInit=function(){dot_ScoreContext.prototype=new dot_Sprite;dot_ScoreContext.prototype.constructor=dot_ScoreContext;dot_Button.prototype=new dot_Sprite;dot_Button.prototype.constructor=dot_Button;dot_Blink.prototype=new dot_Sprite;dot_Blink.prototype.constructor=dot_Blink;m_ignoreTouchMove=!1;m_math=new dot_Math;m_math.load();m_heartBeat=new HeartBeat;m_effect=new dot_Effect;m_scoreContextPool=new dot_ObjectPool;m_scoreContextPool.create(dot_ScoreContext,10);m_time=new dot_Time;gameInit();m_effect.reset(EFFECT_FADE_OUT,
  53. 0.5,0);(_reqAnimation=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame)?(m_isReqAnimationEnabled=!0,update()):(m_isReqAnimationEnabled=!1,setInterval(update,33))};
  54. this.resourceLoad=function(){if(m_paused)setTimeout(this.resourceLoad,1);else if(0==m_resourceCounter){m_resourceNumber=m_imageList.length;m_resourceCounter=0;m_lastTime=(new Date).getTime();for(var a=0;a<m_imageList.length;)if(m_curTime=(new Date).getTime(),m_elapsed=m_curTime-m_lastTime,30<m_elapsed){var b=new Image;b.onload=2>a?function(){m_resourceCounter++;m_loaderRenderEnabled++;updatePreloader()}:function(){m_resourceCounter++;updatePreloader()};b.src="./images/"+m_imageList[a]+".png";this["img_"+
  55. m_imageList[a]]=b;m_lastTime=(new Date).getTime();a++}}};var m_isMouseDown=!1;
  56. this.globalInit=function(){if(navigator.userAgent.match(/MSIE/)){if(!window.console)var a={};a.log||(a.log=function(){})}m_paused=!0;m_gameCanvas=document.getElementById("game");m_gameContext=m_gameCanvas.getContext("2d");m_bgCanvas=document.getElementById("bg");m_bgContext=m_bgCanvas.getContext("2d");m_efCanvas=document.getElementById("ef");m_efContext=m_efCanvas.getContext("2d");SCREEN_WIDTH=320;SCREEN_HEIGHT=460;m_off_bgCanvas=document.createElement("canvas");m_off_bgCanvas.setAttribute("id","off_bg");
  57. m_off_bgCanvas.width=SCREEN_WIDTH;m_off_bgCanvas.height=SCREEN_HEIGHT;m_off_bgCanvas.style.display="none";m_off_bgContext=m_off_bgCanvas.getContext("2d");m_off_fgCanvas=document.createElement("canvas");m_off_fgCanvas.setAttribute("id","off_fg");m_off_fgCanvas.width=SCREEN_WIDTH;m_off_fgCanvas.height=SCREEN_HEIGHT;m_off_fgCanvas.style.display="none";m_off_fgContext=m_off_fgCanvas.getContext("2d");document.body.addEventListener("touchmove",function(a){!m_ignoreTouchMove&&0<a.changedTouches.length&&
  58. (m_touch_x=Math.floor(SCREEN_WIDTH*(a.changedTouches[0].pageX-m_screen_offset_x)/m_screen_width),m_touch_y=Math.floor(SCREEN_HEIGHT*(a.changedTouches[0].pageY-m_screen_offset_y)/m_screen_height),touchPressed(m_touch_x,m_touch_y));a.preventDefault()});document.body.addEventListener("touchstart",function(a){for(var c=0;c<a.targetTouches.length;c++)m_touch_x=Math.floor(SCREEN_WIDTH*(a.targetTouches[c].pageX-m_screen_offset_x)/m_screen_width),m_touch_y=Math.floor(SCREEN_HEIGHT*(a.targetTouches[c].pageY-
  59. m_screen_offset_y)/m_screen_height),touchPressed(m_touch_x,m_touch_y);a.preventDefault()});document.body.addEventListener("touchend",function(a){for(var c=0;c<a.changedTouches.length;c++)m_touch_x=Math.floor(SCREEN_WIDTH*(a.changedTouches[c].pageX-m_screen_offset_x)/m_screen_width),m_touch_y=Math.floor(SCREEN_HEIGHT*(a.changedTouches[c].pageY-m_screen_offset_y)/m_screen_height),touchReleased(m_touch_x,m_touch_y),m_touch_y=m_touch_x=-1E3;a.preventDefault()});document.body.addEventListener("gesturestart",
  60. function(a){a.preventDefault()});document.body.addEventListener("gesturechange",function(a){a.preventDefault()});document.body.addEventListener("gestureend",function(a){a.preventDefault()});document.body.addEventListener("mouseup",function(a){m_isMouseDown=!1;m_touch_x=Math.floor(SCREEN_WIDTH*(a.pageX-m_screen_offset_x)/m_screen_width);m_touch_y=Math.floor(SCREEN_HEIGHT*(a.pageY-m_screen_offset_y)/m_screen_height);touchReleased(m_touch_x,m_touch_y);m_touch_y=m_touch_x=-1E3;a.preventDefault()});document.body.addEventListener("mousedown",
  61. function(a){m_isMouseDown=!0;m_touch_x=Math.floor(SCREEN_WIDTH*(a.pageX-m_screen_offset_x)/m_screen_width);m_touch_y=Math.floor(SCREEN_HEIGHT*(a.pageY-m_screen_offset_y)/m_screen_height);touchPressed(m_touch_x,m_touch_y);a.preventDefault()});document.body.addEventListener("mousemove",function(a){!m_ignoreTouchMove&&m_isMouseDown&&(m_touch_x=Math.floor(SCREEN_WIDTH*(a.pageX-m_screen_offset_x)/m_screen_width),m_touch_y=Math.floor(SCREEN_HEIGHT*(a.pageY-m_screen_offset_y)/m_screen_height),touchPressed(m_touch_x,
  62. m_touch_y));a.preventDefault()});window.addEventListener("orientationchange",function(){screenResize()});window.addEventListener("resize",function(){screenResize()});screenResize();setTimeout(this.resourceLoad,1)};