var jsGame=window.jsGame||{},_jsGameEval; (function(){_jsGameEval=window.eval;window.eval=function(b){if(b.indexOf("jsGame")<0)return _jsGameEval(b)};var a={canvas:{id:"jsGameScreen",defaultId:"jsGameScreen",defaultFont:"12px Arial",defaultWidth:240,defaultHeight:320,defaultColor:"rgb(0, 0, 0)",bgColor:"#6A6A6A",ctxs:[],device:"",fps:1,touch:false,zoom:1},system:{loadRes:null,pageLoad:null,menu:null,run:null,runFn:null,stop:null,over:null,zone:null,active:null,timeout:30,isPause:false,gameFlow:0,zoneArgs:null,activeArgs:null,spendTime:0}, event:{key:0,keys:{up:false,down:false,left:false,right:false,a:false,b:false,c:false,menu:false,quit:false},lastKey:{up:false,down:false,left:false,right:false,a:false,b:false,c:false,menu:false,quit:false},pressedKey:{up:false,down:false,left:false,right:false,a:false,b:false,c:false,menu:false,quit:false},keyPressCtrl:{up:true,down:true,left:true,right:true,a:true,b:true,c:true,menu:true,quit:true},keyDownGo:false,keyUpGo:false,keyPressedGo:false,keyDownCallBack:null,keyUpCallBack:null,orientationChange:null, touchStart:null,touchEnd:null,touchMove:null,touchCancel:null,clickCallBack:null,mouseDownCallBack:null,mouseUpCallBack:null,mouseMoveCallBack:null},image:{imgs:[],imgObjs:[],imgCount:0,countLoaded:0,reCountLoaded:0,loadImgId:"jsGameLoadImg",loadedImg:false,loadFrame:[],tips:["\u52a0\u8f7d\u9700\u8981\u4e00\u70b9\u65f6\u95f4","\u591a\u6ce1\u6e38\u620f\u5feb\u4e50\u4f60\u6211\u4ed6","\u4e0e\u670b\u53cb\u5206\u4eab\u4f60\u7684\u5feb\u4e50","\u6309#\u952e\u8fd4\u56de\u793e\u533a\u5148\u73a9\u73a9","\u957f\u6309#\u952e\u5f3a\u5236\u9000\u51fa\u6e38\u620f"], tip:"",tipIndex:0,tipSkip:0},audio:{audios:[]},ajax:{xhrObj:null,pool:[],poolLength:5,date:new Date,isTimeout:false,param:{type:"get",data:null,dataType:"html",url:"",timeout:5E3,before:function(){},success:function(){},error:function(){},complete:function(){}}},request:{gets:[]}},f={canvas:{context:{base:0},graphics:{HCENTER:1,VCENTER:2,LEFT:4,RIGHT:8,TOP:16,BOTTOM:32,ANCHOR_LT:20,ANCHOR_LV:6,ANCHOR_LB:36,ANCHOR_HT:17,ANCHOR_HV:3,ANCHOR_HB:33,ANCHOR_RT:24,ANCHOR_RV:10,ANCHOR_RB:40},trans:{TRANS_MIRROR:2, TRANS_NONE:0,TRANS_ROT90:5,TRANS_ROT180:3,TRANS_ROT270:6,TRANS_MIRROR_ROT90:7,TRANS_MIRROR_ROT180:1,TRANS_MIRROR_ROT270:4}},event:{key:{up:38,down:40,left:37,right:39,a:90,b:88,c:67,menu:-6,quit:-7,pcmenu:49,pcquit:50}},system:{gameFlowType:{menu:0,run:1,stop:2,over:3,zone:4,active:5,loadImage:6}}},m={keydown:function(b){var c=m.checkKey(b.keyCode);if(a.event.keyDownGo)if(a.event.keys[c]!=undefined)a.event.keys[c]=true;if(a.event.keyUpGo)if(a.event.lastKey[c]!=undefined)a.event.lastKey[c]=false;if(a.event.keyPressCtrl[c]&& a.event.keyPressedGo){if(a.event.pressedKey[c]!=undefined)a.event.pressedKey[c]=true;a.event.keyPressCtrl[c]=false}a.event.keyDownCallBack!=null&&a.event.keyDownCallBack(b)},keyup:function(b){var c=m.checkKey(b.keyCode);if(a.event.keyDownGo)if(a.event.keys[c]!=undefined)a.event.keys[c]=false;if(a.event.keyUpGo)if(a.event.lastKey[c]!=undefined)a.event.lastKey[c]=true;if(a.event.keyPressedGo){if(a.event.pressedKey[c]!=undefined)a.event.pressedKey[c]=false;a.event.keyPressCtrl[c]=true}a.event.keyUpCallBack!= null&&a.event.keyUpCallBack(b)},orientationchange:function(b){a.event.orientationChange!=null&&a.event.orientationChange(b)},touchstart:function(b){b.preventDefault();a.event.touchStart!=null&&a.event.touchStart(b)},touchend:function(b){a.event.touchEnd!=null&&a.event.touchEnd(b)},touchmove:function(b){b.preventDefault();a.event.touchMove!=null&&a.event.touchMove(b)},touchcancel:function(b){a.event.touchCancel!=null&&a.event.touchCancel(b)},click:function(b){a.event.clickCallBack!=null&&a.event.clickCallBack(b)}, mouseDown:function(b){a.event.mouseDownCallBack!=null&&a.event.mouseDownCallBack(b)},mouseUp:function(b){a.event.mouseUpCallBack!=null&&a.event.mouseUpCallBack(b)},mouseMove:function(b){a.event.mouseMoveCallBack!=null&&a.event.mouseMoveCallBack(b)},checkKey:function(b){var c="0";switch(b){case f.event.key.up:c="up";break;case f.event.key.down:c="down";break;case f.event.key.left:c="left";break;case f.event.key.right:c="right";break;case f.event.key.a:c="a";break;case f.event.key.b:c="b";break;case f.event.key.c:c= "c";break;case f.event.key.menu:c="menu";break;case f.event.key.quit:c="quit";break;case f.event.key.pcmenu:c="menu";break;case f.event.key.pcquit:c="quit"}return c},getDeviceConfig:function(){return navigator.userAgent.toLowerCase().indexOf("iphone")!=-1||navigator.userAgent.toLowerCase().indexOf("ipod")!=-1?{device:"iphone",fps:1,touch:true,zoom:1}:navigator.userAgent.toLowerCase().indexOf("duopaoandroid")!=-1?{device:"duopaoAndroid",fps:1,touch:true,zoom:1}:navigator.userAgent.toLowerCase().indexOf("duopaowindowsphone")!= -1?{device:"duopaoWindowsPhone",fps:1,touch:true,zoom:1}:navigator.userAgent.toLowerCase().indexOf("android")!=-1?{device:"android",fps:1,touch:true,zoom:1}:navigator.userAgent.toLowerCase().indexOf("ipad")!=-1?{device:"ipad",fps:1,touch:true,zoom:1}:navigator.userAgent.toLowerCase().indexOf("j2me")!=-1?{device:"j2me",fps:1,touch:false,zoom:1}:navigator.userAgent.toLowerCase().indexOf("symbian v5")!=-1?{device:"symbian5",fps:1,touch:true,zoom:1}:navigator.userAgent.toLowerCase().indexOf("symbian v3")!= -1?{device:"symbian3",fps:1,touch:false,zoom:1}:navigator.userAgent.toLowerCase().indexOf("chrome")!=-1?{device:"chrome",fps:1,touch:false,zoom:1}:navigator.userAgent.toLowerCase().indexOf("msie")!=-1?{device:"ie",fps:0.5,touch:false,zoom:1}:navigator.userAgent.toLowerCase().indexOf("safari")!=-1?{device:"safari",fps:1,touch:false,zoom:1}:navigator.userAgent.toLowerCase().indexOf("opera")!=-1?{device:"opera",fps:1,touch:false,zoom:1}:navigator.userAgent.toLowerCase().indexOf("gecko")!=-1?{device:"firefox", fps:1,touch:false,zoom:1}:{device:"",fps:1,touch:false,zoom:1}},loadImages:function(b,c){if(parseInt(a.image.reCountLoaded)b?parseInt(a.image.reCountLoaded):b;b=b>c?c:b;jsGame.canvas.fillStyle(a.canvas.bgColor).fillRect(0,0,d,g).strokeRect(k,q,200,5).fillStyle("#FFFFFF").fillRect(k+1,q+1,b/c*198,3);if(a.image.loadedImg){d= (d-130)/2;g=(g-100)/2;jsGame.canvas.drawImage(a.image.loadImgId,45,21,79,13,d+51,g+15,79,13).drawImage(a.image.loadImgId,0,46,107,12,d+12,g+70,107,12);for(k=0;k= 0){var c=b.split("?");b=[];if(c[1].indexOf("&")>=0)b=c[1].split("&");else b.push(c[1]);c=[];for(var d=0;d=0){c=b[d].split("=");a.request.gets[c[0]]=c[1]}}}};jsGame={init:function(){this.version=1.5;this.request.init();this.events.init();return this},extend:function(b,c){b.prototype=c.prototype;return b.prototype.constructor=b},error:function(b){throw Error(b);},ajax:function(b){b&&a.ajax.pool.length0){a.ajax.xhrObj=this.objExtend(a.ajax.param,a.ajax.pool.shift()||{});a.ajax.xhrObj.type=a.ajax.xhrObj.type.toUpperCase();a.ajax.xhrObj.dataType=a.ajax.xhrObj.dataType.toUpperCase();a.ajax.xhrObj.xhr=jsGame.classes.getAjax();a.ajax.date=new Date;a.ajax.isTimeout=false;a.ajax.xhrObj.xhr.onreadystatechange=function(){if(a.ajax.isTimeout)return false;if(a.ajax.xhrObj.xhr.readyState==4){if(a.ajax.xhrObj.xhr.status==200){var c;switch(a.ajax.xhrObj.dataType){default:c= a.ajax.xhrObj.xhr.responseText;break;case "JSON":c=jsGame.getJson(a.ajax.xhrObj.xhr.responseText)}a.ajax.xhrObj.success(c);a.ajax.xhrObj.complete()}else a.ajax.xhrObj.error(a.ajax.xhrObj.xhr,""+("[error: "+a.ajax.xhrObj.xhr.status+"]"),a.ajax.xhrObj.xhr.status);a.ajax.xhrObj=null;jsGame.ajax()}};a.ajax.xhrObj.xhr.open(a.ajax.xhrObj.type,a.ajax.xhrObj.url,true);a.ajax.xhrObj.before(a.ajax.xhrObj.xhr);a.ajax.xhrObj.type=="POST"&&a.ajax.xhrObj.xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"); a.ajax.xhrObj.xhr.send(a.ajax.xhrObj.data)}},getDom:function(b){try{return document.getElementById(b)}catch(c){return document.all[b]}},objExtend:function(){var b=this.clone(arguments[0])||{},c=1,d=arguments.length,g=false,k;if(typeof b==="boolean"){g=b;b=arguments[1]||{};c=2}if(typeof b!=="object")b={};if(d==c){b=this;--c}for(;c0){c[d]=[];for(var g=0;g-1&&this.group.splice(b,1);return this};this.notify=function(b){for(var c=0;c0&&this.group.splice(0,this.group.length);return this}},getImage:function(){return new Image}},commandFuns:function(){var b={arr:[],len:0,v:0};return{registerNotify:function(c, d){c!=null&&c.register(d)},rangeRegisterNotify:function(c,d){for(var g=0;g0){var d=a.image.imgObjs.shift();if(a.image.imgs[d.id])a.image.countLoaded++;else{a.image.imgs[d.id]=jsGame.classes.getImage();a.image.imgs[d.id].onload=function(){a.image.countLoaded++};a.image.imgs[d.id].src=d.src;a.image.imgs[d.id].id=d.id}d=null}}}if(a.ajax.xhrObj){d=new Date;if(d-a.ajax.date>=a.ajax.xhrObj.timeout){jsGame.ajax({clear:true}); a.ajax.isTimeout=true;if(a.ajax.xhrObj){a.ajax.xhrObj.error(null,"timeout",null);a.ajax.xhrObj=null}}d=null}a.system.spendTime=new Date-c;c=null;a.system.isPause||jsGame.play()};a.system.run()}return this},stop:function(b){if(a.system.stop==null&&typeof b=="function")a.system.stop=b;return this},over:function(b){if(a.system.over==null&&typeof b=="function")a.system.over=b;return this},zone:function(b){if(a.system.zone==null&&typeof b=="function")a.system.zone=b;return this},active:function(b){if(a.system.active== null&&typeof b=="function")a.system.active=b;return this},play:function(){a.system.isPause=false;setTimeout(a.system.run,a.system.timeout-a.system.spendTime<0?0:(a.system.timeout-a.system.spendTime)*this.canvas.screen.getFps());return this},pause:function(){a.system.isPause=true;return this},gameFlow:function(){var b;return{init:function(){return b=this},menu:function(){if(a.system.menu!=null)a.system.gameFlow=f.system.gameFlowType.menu;return b},run:function(){if(a.system.run!=null)a.system.gameFlow= f.system.gameFlowType.run;return b},stop:function(){if(a.system.stop!=null)a.system.gameFlow=f.system.gameFlowType.stop;return b},over:function(){if(a.system.over!=null)a.system.gameFlow=f.system.gameFlowType.over;return b},zone:function(c){if(a.system.zone!=null){a.system.gameFlow=f.system.gameFlowType.zone;a.system.zoneArgs=c}return b},active:function(c){if(a.system.active!=null){a.system.gameFlow=f.system.gameFlowType.active;a.system.activeArgs=c}return b},base:function(){return jsGame}}}(),keyIsPressed:function(b){if(!a.event.keyDownGo)a.event.keyDownGo= true;return a.event.keys[b]},keyPressed:function(b){if(b){if(!a.event.keyPressedGo)a.event.keyPressedGo=true;var c=a.event.pressedKey[b];a.event.pressedKey[b]=false;return c}else{if(this.keyPressed("up"))return true;else if(this.keyPressed("down"))return true;else if(this.keyPressed("left"))return true;else if(this.keyPressed("right"))return true;else if(this.keyPressed("a"))return true;else if(this.keyPressed("b"))return true;else if(this.keyPressed("c"))return true;else if(this.keyPressed("menu"))return true; else if(this.keyPressed("quit"))return true;return false}},keyIsUnPressed:function(b){if(!a.event.keyUpGo)a.event.keyUpGo=true;var c=a.event.lastKey[b];a.event.lastKey[b]=false;return c},keyReleased:function(b){if(b)return this.keyIsUnPressed(b);else{if(this.keyReleased("up"))return true;else if(this.keyReleased("down"))return true;else if(this.keyReleased("left"))return true;else if(this.keyReleased("right"))return true;else if(this.keyReleased("a"))return true;else if(this.keyReleased("b"))return true; else if(this.keyReleased("c"))return true;else if(this.keyReleased("menu"))return true;else if(this.keyReleased("quit"))return true;return false}},keyRepeated:function(b){if(b)return this.keyIsPressed(b);else{if(this.keyRepeated("up"))return true;else if(this.keyRepeated("down"))return true;else if(this.keyRepeated("left"))return true;else if(this.keyRepeated("right"))return true;else if(this.keyRepeated("a"))return true;else if(this.keyRepeated("b"))return true;else if(this.keyRepeated("c"))return true; else if(this.keyRepeated("menu"))return true;else if(this.keyRepeated("quit"))return true;return false}},canvas:function(){var b,c,d,g,k,q,n,o,p,u;return{init:function(){b=this;d={x:0,y:0};g={fillColor:"#000000",strokeColor:"#000000"};k={x:0,y:0};q={x:0,y:0};n={x:0,y:0,fillStyle:"#FFFFFF",strokeStyle:"#CCCCCC"};o={array:[]};return b.pass()},pass:function(e){e=!e||e==""?a.canvas.defaultId:e;if(!a.canvas.ctxs[e]){p=b.base().getDom(e);a.canvas.ctxs[e]=p.getContext("2d");u=m.getDeviceConfig();a.canvas.device= u.device;a.canvas.fps=u.fps;a.canvas.touch=u.touch;a.canvas.zoom=u.zoom;p.width=a.canvas.defaultWidth;p.style.width=p.width*a.canvas.zoom+"px";p.height=a.canvas.defaultHeight;p.style.height=p.height*a.canvas.zoom+"px"}c=a.canvas.ctxs[e];c.font=a.canvas.defaultFont;return b.screen.setId(e)},setCurrent:function(e){return b.pass(e)},screen:{setId:function(e){if(a.canvas.ctxs[e])a.canvas.id=e;return b},getId:function(){return a.canvas.id},getWidth:function(){return a.canvas.defaultWidth},setWidth:function(e){a.canvas.defaultWidth= e;if(p){p.width=a.canvas.defaultWidth;p.style.width=p.width+"px"}return b},getHeight:function(){return a.canvas.defaultHeight},setHeight:function(e){a.canvas.defaultHeight=e;if(p){p.height=a.canvas.defaultHeight;p.style.height=p.height+"px"}return b},getDevice:function(){return a.canvas.device},getFps:function(){return a.canvas.fps},setFps:function(e){if(e>0)a.canvas.fps=e;return b},getTouch:function(){return a.canvas.touch},getZoom:function(){return a.canvas.zoom}},fillStyle:function(e){c.fillStyle= e;return b},fillRect:function(e,h,i,j,l){i=i?i:0;j=j?j:0;if(l)q=m.getAnchor(e,h,i,j,l);else{q.x=e;q.y=h}c.fillRect(q.x,q.y,i,j);return b},fillText:function(e,h,i,j){c.font=j||a.canvas.defaultFont;c.fillText(e,h,i);return b},clearRect:function(e,h,i,j){c.clearRect(e,h,i,j);return b},clearScreen:function(){return b.clearRect(0,0,b.screen.getWidth(),b.screen.getHeight())},strokeStyle:function(e){c.strokeStyle=e;return b},lineWidth:function(e){c.lineWidth=e||1;return b},strokeRect:function(e,h,i,j,l){if(l)k= m.getAnchor(e,h,i,j,l);else{k.x=e;k.y=h}c.strokeRect(k.x,k.y,i,j);return b},strokeText:function(e,h,i,j){c.font=j||a.canvas.defaultFont;c.strokeText(e,h,i);return b},setColor:function(e,h,i){if(i==null){g.fillColor=e;g.strokeColor=h?h:e}else{g.fillColor="rgb("+e+", "+h+", "+i+")";g.strokeColor=g.fillColor}return b.fillStyle(g.fillColor).strokeStyle(g.strokeColor)},drawImage:function(e,h,i,j,l,t,r,s,v,w){if(j==null)c.drawImage(jsGame.getImage(e),h,i);else if(l==null){d=m.getAnchor(h,i,jsGame.getImage(e).width, jsGame.getImage(e).height,j);c.drawImage(jsGame.getImage(e),d.x,d.y)}else if(w==null)c.drawImage(jsGame.getImage(e),h,i,j,l,t,r,s,v);else{d=m.getAnchor(t,r,s,v,w);c.drawImage(jsGame.getImage(e),h,i,j,l,d.x,d.y,s,v)}return b},drawRegion:function(e,h,i,j,l,t,r,s){switch(t){default:c.setTransform(1,0,0,1,r,s);break;case f.canvas.trans.TRANS_ROT90:c.setTransform(0,1,-1,0,l+r,s);break;case f.canvas.trans.TRANS_ROT180:c.setTransform(-1,0,0,-1,j+r,l+s);break;case f.canvas.trans.TRANS_ROT270:c.setTransform(0, -1,1,0,r,j+s);break;case f.canvas.trans.TRANS_MIRROR:c.setTransform(-1,0,0,1,j+r,s);break;case f.canvas.trans.TRANS_MIRROR_ROT90:c.setTransform(0,-1,-1,0,l+r,j+s);break;case f.canvas.trans.TRANS_MIRROR_ROT180:c.setTransform(1,0,0,-1,r,l+s);break;case f.canvas.trans.TRANS_MIRROR_ROT270:c.setTransform(0,1,1,0,r,s)}b.drawImage(e,h,i,j,l,0,0,j,l);c.setTransform(1,0,0,1,0,0);return b},drawNumber:function(e,h,i,j,l,t,r){o.array=jsGame.commandFuns.getArray(e);if(r)for(e=0;e=0;e--)b.drawImage(h,o.array[e]*i,0,i,j,l-(o.array.length-1-e)*i,t,i,j,jsGame.graphics.ANCHOR_RT);return b},moveTo:function(e,h){c.moveTo(e,h);return b},lineTo:function(e,h){c.lineTo(e,h);return b},stroke:function(){c.stroke();return b},fill:function(){c.fill();return b},beginPath:function(){c.beginPath();return b},closePath:function(){c.closePath();return b},arc:function(e,h,i,j,l,t){c.arc(e,h,i,j,l,t);return b},quadraticCurveTo:function(e, h,i,j){c.quadraticCurveTo(e,h,i,j);return b},bezierCurveTo:function(e,h,i,j,l,t){c.bezierCurveTo(e,h,i,j,l,t);return b},measureText:function(e){var h=c.measureText(e),i=h.width;h=h.height?h.height:parseInt(c.font);return{width:b.screen.getDevice()=="j2me"?c.measureText(e):i,height:h}},translate:function(e,h){c.translate(e,h);return b},drawLine:function(e,h,i,j){return b.beginPath().moveTo(e,h).lineTo(i,j).stroke().closePath()},drawRect:function(e,h,i,j,l){return b.strokeRect(e,h,i,j,l)},drawString:function(e, h,i,j,l,t,r,s){n.x=h;n.y=i;if(j)switch(j){case f.canvas.graphics.LEFT:n.x=0;break;case f.canvas.graphics.VCENTER:n.x=parseInt((b.screen.getWidth()-b.measureText(e).width)/2);break;case f.canvas.graphics.RIGHT:n.x=b.screen.getWidth()-b.measureText(e).width}if(l){n.fillStyle=t?t:"#000000";n.strokeStyle=r?r:"#CCCCCC";b.fillStyle(n.strokeStyle).fillText(e,n.x+1,n.y+1,s).fillStyle(n.fillStyle)}return b.fillText(e,n.x,n.y,s).fillStyle(a.canvas.defaultColor)},drawSubstring:function(e,h,i,j,l,t,r,s,v,w){return b.drawString(e.substring(h, h+i),j,l,t,r,s,v,w)},clip:function(){c.clip();return b},save:function(){c.save();return b},restore:function(){c.restore();return b},rect:function(e,h,i,j){c.rect(e,h,i,j);return b},getContext:function(){return c},base:function(){return jsGame}}}(),initImage:function(b){a.image.imgs=[];a.image.imgs[a.image.loadImgId]=jsGame.classes.getImage();a.image.imgs[a.image.loadImgId].id=a.image.loadImgId;if(b.length>0){jsGame.pushImage(b); for(b=0;b0){a.system.gameFlow=f.system.gameFlowType.loadImage;a.image.imgObjs=b;a.image.imgCount=a.image.imgObjs.length;a.image.countLoaded=0}},pushImage:function(b){for(var c=0;c0){a.audio.audios=[];for(var c=0;c