123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705 |
- window.onload=function(){
- try{
- //bodyObj.removeChild(loadingBox);
- }catch(e){}
- try{
- initEvent();//固定加载事件防范
- }catch(e){}
- try{
- doAction();//每个页面都必须存在,用来执行该页面的方法
- }catch(e){}
-
- }
- var weixinState=0;//0未就绪,1就绪
- function doAction(){
- if(!GetParam('restart')){
- window.clearTimeout(loadTimer);
- document.getElementById('progressingId').style.width='100%';
- setTimeout(function(){
- initGame();
- },1000);
- }else{
- initGame();
- }
-
-
- }
- function initEvent(){
- restart();
- getShare();
- initScreen();
- paihang();
- //guanzhu();
- setWeixinEvent();
- window.onresize=function(){
- console.log('屏幕尺寸有变更');
- initScreen();
- }
- }
- function initScreen(){
- var w=getWindowWidth();
- var h=getWindowHeight();
-
- var baseW=w;
- var baseH=1008*(baseW/640);
-
- document.getElementById('mainId').style.height=baseH+'px';
-
- document.getElementById('jumpLineCtxBoxId').style.width=w+'px';
- document.getElementById('jumpLineCtxBoxId').style.height=baseH+'px';
-
- if(baseH>h){
- var mainScale=h/baseH;
- document.getElementById('mainId').style.webkitTransform='scale('+mainScale+','+mainScale+')';
- document.getElementById('mainId').style.transform='scale('+mainScale+','+mainScale+')';
- }
-
- /*
- if(w>640){//屏幕宽度大于640时居中
- document.getElementById('mainId').style.left=((w-640)/2)+'px';
- document.getElementById('loadingId').style.left=((w-640)/2)+'px';
- }
- */
-
- }
- var gameInfo=function(){
- this.score=0;//游戏得分
- this.timer=0;//游戏计时
- this.state=0;//0就绪,1进行中,2结束
- this.hp=0;//允许被绊倒的次数
- this.tortoiseInfo=-1;//-1未就绪,0乌龟就绪,1乌龟进入跳绳,2乌龟准备跳绳,3乌龟通过了,4乌龟被绊倒了
- this.nowTortoise=0;//当前乌龟
- this.waitTortoise=0;//下一只乌龟
- this.outTortoise=0;//离开的乌龟
- this.walkState=0;//0停止走路,1走路中
- }
- var gameInfoTemp;
- var tortoiseInfoRightPositon={
- 1:['-24%','-10%','40%'],
- 2:['-21%','-11.2%','38.8%'],
- 3:['-27.3%','-15.3%','33.7%'],
- 4:['-21%','-11.2%','38.8%']
- };
- function initGame(){
-
- resetTortoise();
-
- document.getElementById('sence2Id').style.opacity='0';
-
- document.getElementById('sence0Id').style.display='block';
- document.getElementById('sence0Id').style.opacity='1';
- document.getElementById('sence0Id').style.zIndex=1;
-
- if(!GetParam('restart')){
- loadingBox.style.opacity='0';
- }
-
- document.getElementById('sence0Id').style.opacity='1';
-
- setTimeout(function(){
- if(!GetParam('restart')){
- loadingBox.style.display='none';
- }
- document.getElementById('sence2Id').style.display='none';
- document.getElementById('sence2Id').style.zIndex=-1;
- },500);
-
- gameInfoTemp=new gameInfo;
-
- gameInfoTemp.score=0;//游戏得分
- gameInfoTemp.timer=0;//游戏计时
- gameInfoTemp.state=0;//0就绪,1进行中,2结束
- gameInfoTemp.hp=0;//允许被绊倒的次数
- gameInfoTemp.tortoiseInfo=-1;//-1未就绪,0乌龟就绪,1乌龟进入跳绳,2乌龟准备跳绳,3乌龟通过了,4乌龟被绊倒了
- gameInfoTemp.nowTortoise=0;//当前乌龟
- gameInfoTemp.waitTortoise=0;//下一只乌龟
- gameInfoTemp.outTortoise=0;//离开的乌龟
- gameInfoTemp.walkState=0;//0停止走路,1走路中
-
- document.getElementById('sence0Id').onclick=function(){
-
- gotoSence1();//进入场景1,游戏开始
- }
-
- }
- function resetTortoise(){
- for(var i=1;i<=4;i++){
- document.getElementById('tortoise'+i+'Id').style.right=tortoiseInfoRightPositon[i-1];
- document.getElementById('tortoise'+i+'Id').style.display='none';
- }
- }
- function gotoSence1(){
- setScore(gameInfoTemp.score);
-
- document.getElementById('sence0Id').style.opacity='0';
-
- document.getElementById('sence1Id').style.display='block';
- document.getElementById('sence1Id').style.opacity='1';
- document.getElementById('sence1Id').style.zIndex=9;
-
- setTimeout(function(){
- document.getElementById('sence0Id').style.display='none';
- document.getElementById('sence0Id').style.zIndex=1;
- },500);
-
- setJumpLineAni();
-
- }
- function setJumpLineAni(){
-
-
- var lineInfo=function(){
- this.nowPosition=0;//偏移位置f
- this.speed=1;//跳绳速度速度
- this.timeSpeed=80;//动画速度
- this.timeer=0;
- this.state=0;
- this.jumpJudgeState=0;//0还未点击跳跃,1跳跃按钮成功
- this.jumpState=-1;//0lose,1win
- this.jumpStep=0;
- }
-
- var jumpInfoTemp;
-
-
-
- document.getElementById('ctrlBoxId').onclick=function(){
-
- }
-
- var valuesLeft={
- node:'ctrlBoxId',
- clickEvent:'on',
- eventStart:function(e){
-
- },
- eventMove:function(e){},
- eventEnd:function(e){
- jumpJudge();//点击跳跃,判断是否跳成功
- }
-
- }
- AddEventHandlers(valuesLeft);
- jumpInfoTemp=new lineInfo;
-
- runJumpLine();
-
-
- function runJumpLine(){//执行一次跳绳动画
-
-
- jumpInfoTemp.nowPosition=0;//偏移位置
- //jumpInfoTemp.speed=jumpInfoTemp.speed+0.1;//跳绳速度速度
- jumpInfoTemp.timeer=0;
- jumpInfoTemp.state=0;//跳绳圈位置
- jumpInfoTemp.jumpJudgeState=0;//0还未点击跳跃,1跳跃按钮开始成功
- jumpInfoTemp.jumpState=-1;//0lose,1win
- jumpInfoTemp.jumpStep=0;
-
- //设置跳绳速度
- /*
- jumpInfoTemp.speed=1+Math.floor(gameInfoTemp.score/2)*5/100;
- */
-
-
-
- console.log('当前跳绳速度'+jumpInfoTemp.speed);
-
-
- //console.log(jumpInfoTemp);
-
- jumpInfoTemp.timer=window.setInterval(function(){
-
- if(jumpInfoTemp.state==5){
- window.clearInterval(jumpInfoTemp.timer);
- return;
- }
-
- if(jumpInfoTemp.state==4){
- window.clearInterval(jumpInfoTemp.timer);
- runJumpLine();
- return;
- }
-
-
-
- getJumpPosition();
-
-
-
- },jumpInfoTemp.timeSpeed);
-
- function getJumpPosition(){//计算二次赛贝尔曲线坐标
-
- switch(jumpInfoTemp.jumpStep){
- case 0:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line19Id').style.display='none';
- document.getElementById('line0Id').style.display='block';
- if(gameInfoTemp.tortoiseInfo==0){
- setTortoiseGo();
- }
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 1:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line0Id').style.display='none';
- document.getElementById('line1Id').style.display='block';
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 2:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line1Id').style.display='none';
- document.getElementById('line2Id').style.display='block';
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 3:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line2Id').style.display='none';
- document.getElementById('line3Id').style.display='block';
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 4:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line3Id').style.display='none';
- document.getElementById('line4Id').style.display='block';
- jumpInfoTemp.jumpJudgeState=0;
-
- break;
- case 5:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line4Id').style.display='none';
- document.getElementById('line5Id').style.display='block';
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 6:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line5Id').style.display='none';
- document.getElementById('line6Id').style.display='block';
- if(gameInfoTemp.waitTortoise==0){
- setTortoiseReady();
- gameInfoTemp.tortoiseInfo=0;
- }
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 7:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line6Id').style.display='none';
- document.getElementById('line7Id').style.display='block';
-
- break;
- case 8:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line7Id').style.display='none';
- document.getElementById('line8Id').style.display='block';
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 9:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line8Id').style.display='none';
- document.getElementById('line9Id').style.display='block';
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 10:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line9Id').style.display='none';
- document.getElementById('line10Id').style.display='block';
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 11:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line10Id').style.display='none';
- document.getElementById('line11Id').style.display='block';
- jumpInfoTemp.jumpJudgeState=0;
- break;
- case 12:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line11Id').style.display='none';
- document.getElementById('line12Id').style.display='block';
- for(var i=1;i<=4;i++){
- var tr=document.getElementById('tortoise'+i+'Id').style.right;
- if(tortoiseInfoRightPositon[i][2]==tr){
- gameInfoTemp.tortoiseInfo=2;
- }
-
- }
- jumpInfoTemp.jumpJudgeState=1;
- break;
- case 13:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line12Id').style.display='none';
- document.getElementById('line13Id').style.display='block';
- break;
- case 14:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line13Id').style.display='none';
- document.getElementById('line14Id').style.display='block';
-
- break;
- case 15:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line14Id').style.display='none';
- document.getElementById('line15Id').style.display='block';
- break;
- case 16:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line15Id').style.display='none';
- document.getElementById('line16Id').style.display='block';
- if(jumpInfoTemp.nowPosition<=jumpInfoTemp.maxMove/4){
- jumpInfoTemp.jumpJudgeState=0;
- console.log('进行跳跃判断结束');
- }
- break;
- case 17:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line16Id').style.display='none';
- document.getElementById('line17Id').style.display='block';
-
- break;
- case 18:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line17Id').style.display='none';
- document.getElementById('line18Id').style.display='block';
- break;
- case 19:
- jumpInfoTemp.jumpStep++;
- document.getElementById('line18Id').style.display='none';
- document.getElementById('line19Id').style.display='block';
- if(jumpInfoTemp.nowPosition<=0){
- if(gameInfoTemp.tortoiseInfo>1){
- console.log('当前乌龟状态:'+gameInfoTemp.tortoiseInfo);
- if(jumpInfoTemp.jumpState==1 || gameInfoTemp.tortoiseInfo==3){
- jumpInfoTemp.state=4;
- gameInfoTemp.score++;
- console.log('得分:'+gameInfoTemp.score);
- setTimeout(function(){
- setScore(gameInfoTemp.score);
- setTortoiseOut();
- },500);
- }else{
- jumpInfoTemp.state=5;
- jumpInfoTemp.jumpState=2;
- gameInfoTemp.tortoiseInfo=4;
- gameInfoTemp.walkState=0;
- //document.getElementById('linel0Id').src='images/endLine.png';
-
- gameOver();
-
- }
- }else{
- jumpInfoTemp.state=4;
- }
- jumpInfoTemp.jumpJudgeState=0;
-
- }
- break;
- default:
-
-
-
-
- }
-
-
-
- }
-
-
- }
-
-
- function hideTortoiseImg(tortoiseNumber){//隐藏乌龟图片
- var tortoiseObj=document.getElementById('tortoise'+tortoiseNumber+'Id').getElementsByTagName('img');
-
- for(var i=0;i<tortoiseObj.length;i++){
- tortoiseObj[i].style.display='none';
- }
-
- }
-
- function setTortoiseReady(){//设置乌龟准备
-
- if (gameInfoTemp.waitTortoise>0){
- return;
- }
-
- if(gameInfoTemp.nowTortoise<4){
- var torroiseRndNumber=gameInfoTemp.nowTortoise+1;
- }else{
- gameInfoTemp.waitTortoise=0;
- return;
- }
-
-
- hideTortoiseImg(torroiseRndNumber);
-
- gameInfoTemp.waitTortoise=torroiseRndNumber;
-
- console.log(gameInfoTemp.waitTortoise+'号乌龟进入准备');
-
- //初始化乌龟位置
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.webkitTransition='all 0s linear';
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.transition='all 0s linear';
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.display='none';
- //document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.webkitAnimation='tortoiseA 0.8s linear 1';
- //document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.animation='tortoiseA 0.8s linear 1';
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.webkitAnimation='';
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.animation='';
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.right=tortoiseInfoRightPositon[torroiseRndNumber][0];
- //设置乌龟岛准备位置
- setTimeout(function(){
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.display='block';
- document.getElementById('torroise'+gameInfoTemp.waitTortoise+'_walk1Id').style.display='block';
-
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.webkitTransition='all 0.3s linear';
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.transition='all 0.3s linear';
-
- document.getElementById('tortoise'+gameInfoTemp.waitTortoise+'Id').style.right=tortoiseInfoRightPositon[gameInfoTemp.waitTortoise][1];
- },400);
-
-
- }
-
- function setTortoiseGo(){//乌龟进入跳绳范围
-
- if(gameInfoTemp.waitTortoise==0){
- return;
- }
-
-
-
- gameInfoTemp.nowTortoise=gameInfoTemp.waitTortoise;
- gameInfoTemp.waitTortoise=0;
-
- console.log(gameInfoTemp.nowTortoise+'号乌龟进入跳绳范围');
-
- gameInfoTemp.tortoiseInfo=1;
- gameInfoTemp.walkState=1;
- setTortoiseWalk(gameInfoTemp.nowTortoise);
-
- document.getElementById('tortoise'+gameInfoTemp.nowTortoise+'Id').style.webkitTransition='all 0.3s linear';
- document.getElementById('tortoise'+gameInfoTemp.nowTortoise+'Id').style.transition='all 0.3s linear';
- setTimeout(function(){
- document.getElementById('tortoise'+gameInfoTemp.nowTortoise+'Id').style.right=tortoiseInfoRightPositon[gameInfoTemp.nowTortoise][2];
- },24);
-
- setTimeout(function(){
- gameInfoTemp.tortoiseInfo=2;
- },200);
-
-
- setTimeout(function(){
- setTortoiseReady();
- console.log('进入了吗');
- gameInfoTemp.walkState=0;
- },400);
-
- }
-
- function setTortoiseOut(){//乌龟离开跳绳范围
- gameInfoTemp.walkState=1;
- gameInfoTemp.outTortoise=gameInfoTemp.nowTortoise
- setTortoiseWalk(gameInfoTemp.outTortoise);
- document.getElementById('tortoise'+gameInfoTemp.outTortoise+'Id').style.webkitTransition='all 0.3s linear';
- document.getElementById('tortoise'+gameInfoTemp.outTortoise+'Id').style.transition='all 0.3s linear';
-
- document.getElementById('tortoise'+gameInfoTemp.outTortoise+'Id').style.right='100%';
-
- gameInfoTemp.tortoiseInfo=0;
- jumpInfoTemp.jumpState=-1;
- gameInfoTemp.nowTortoise=0;
- setTortoiseGo();
-
- setTimeout(function(){
- hideTortoiseImg(gameInfoTemp.outTortoise);
- document.getElementById('tortoise'+gameInfoTemp.outTortoise+'Id').style.display='none';
- document.getElementById('tortoise'+gameInfoTemp.outTortoise+'Id').style.right=tortoiseInfoRightPositon[gameInfoTemp.outTortoise][0];
-
- console.log('移出屏幕,回到最右边');
-
- gameInfoTemp.walkState=0;
- },400);
-
- }
-
- function setTortoiseWalk(tortoiseNumber){//设置乌龟走路
-
- hideTortoiseImg(tortoiseNumber);
- w1();
- function w1(){
-
- if(gameInfoTemp.walkState==0){
- console.log('停止走路动作:'+gameInfoTemp.tortoiseInfo);
- setTortoiseStand(tortoiseNumber);
- return;
- }
-
- hideTortoiseImg(tortoiseNumber);
-
- document.getElementById('torroise'+tortoiseNumber+'_walk1Id').style.display='block';
-
- setTimeout(function(){
- w2();
- },40);
-
- }
-
- function w2(){
-
- if(gameInfoTemp.walkState==0){
- console.log('停止走路动作:'+gameInfoTemp.tortoiseInfo);
- setTortoiseStand(tortoiseNumber);
- return;
- }
-
- hideTortoiseImg(tortoiseNumber);
- document.getElementById('torroise'+tortoiseNumber+'_walk2Id').style.display='block';
-
- setTimeout(function(){
- w1();
- },40);
-
- }
-
-
- }
-
- function setTortoiseStand(tortoiseNumber){//设置乌龟站立
- hideTortoiseImg(tortoiseNumber);
-
- document.getElementById('torroise'+tortoiseNumber+'_waitId').style.display='block';
- }
-
- function jumpJudge(){//处理判断乌龟跳
- console.log('判断跳绳状态:'+jumpInfoTemp.jumpState);
- if(jumpInfoTemp.jumpState!=-1){
- return;
- }
-
- if(gameInfoTemp.tortoiseInfo!=2){
- return;
- }
-
- if(jumpInfoTemp.jumpJudgeState==1){
- jumpInfoTemp.jumpState=1;
- gameInfoTemp.tortoiseInfo=3;
- }else{
- jumpInfoTemp.jumpState=0;
- gameInfoTemp.tortoiseInfo=4;
-
- }
- console.log(gameInfoTemp.nowTortoise+'号乌龟跳起');
-
- console.log('挑起状态:'+jumpInfoTemp.jumpState);
-
- document.getElementById('tortoise'+gameInfoTemp.nowTortoise+'Id').style.webkitAnimation='tortoiseA'+gameInfoTemp.nowTortoise+' 0.6s linear 1';
- document.getElementById('tortoise'+gameInfoTemp.nowTortoise+'Id').style.animation='tortoiseA'+gameInfoTemp.nowTortoise+' 0.6s linear 1';
-
-
- }
-
- function gameOver(){//游戏结束
- console.log('游戏结束'+gameInfoTemp.tortoiseInfo);
- hideTortoiseImg(gameInfoTemp.nowTortoise);
- document.getElementById('tortoise'+gameInfoTemp.nowTortoise+'Id').style.display='block';
- document.getElementById('tortoise'+gameInfoTemp.nowTortoise+'_loseId').style.display='block';
- //hideTortoiseImg(gameInfoTemp.nowTortoise);
- //setWeixin();
- // Play68.setRankingScoreDesc(gameInfoTemp.score);
- // updateShare(gameInfoTemp.score);
- setTimeout(function(){
- gotoSence2();
- // dp_submitScore(gameInfoTemp.score);
- },1000);
-
- }
-
-
- }
- function setScore(score){//显示分数
- var html=setNumber(score);
- console.log(html);
- document.getElementById('scoreBoxId').innerHTML=html;
- }
- function setNumber(score){
- var scoreArr=score.toString().split('');
-
- var html='';
-
- for(var i=0;i<scoreArr.length;i++){
- html=html+'<img src="images/'+scoreArr[i]+'.png" />';
- }
-
- return html;
- }
- function gotoSence2(){
-
- var html=setNumber(gameInfoTemp.score);
- document.getElementById('markId').innerHTML=html;
-
- document.getElementById('sence1Id').style.zIndex=1;
- document.getElementById('sence1Id').style.display='none';
-
- document.getElementById('sence2Id').style.zIndex=1;
- document.getElementById('sence2Id').style.display='block';
- document.getElementById('sence2Id').style.opacity='1';
-
-
-
- setTimeout(function(){
- document.getElementById('sence1Id').style.display='none';
- },500);
-
- }
- function getShare(){
- document.getElementById('shareBtnId').onclick=function(){
- // play68_submitScore (gameInfoTemp.score);
- }
- } //排行榜链接
- function paihang(){
- document.getElementById('paihangBtnId').onclick=function(){
- // Play68.goHome();
- }
- }
- //关注我们公众号
- function guanzhu(){
-
- }
- function restart(){
- document.getElementById('restartBtnId').onclick=function(){
- var strUrl=window.location.href;
- var arrUrl=strUrl.split('/');
- var strPage=arrUrl[arrUrl.length-1].split('?')[0];
-
-
-
- window.location=strPage;
- //initGame();
- }
- }
|