亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS小游戲之極速快跑源碼詳解

2019-11-20 14:06:31
字體:
來源:轉載
供稿:網友

本文實例講述了JS小游戲的極速快跑源碼,分享給大家供大家參考。具體如下:

游戲運行后如下圖所示:

Javascript部分代碼如下:

/** 極速快跑* Author: fdipzone* Date: 2012-07-15* Ver: 1.0*/var gameimg = ['images/start.png', 'images/start_over.png', 'images/go.png', 'images/go_over.png', 'images/running.gif', 'images/run_start1.gif', 'images/run_start2.gif', 'images/run_start3.gif'];var speed_obj = new SpeedClass();window.onload = function(){ var callback = function(){ speed_obj.init(); } img_preload(gameimg, callback);}// Speed Classfunction SpeedClass(){ this.levelset = [8,5,8,12]; // 難度參數 this.playerlist = null; // 選手列表 this.player = 0;  // 選中的選手 this.level = 2;  // 難度 this.lock = 0;  // 鎖定 this.isstart = 0;  // 是否開始 this.isover = 0;  // 是否結束}// initSpeedClass.prototype.init = function(){ this.reset(); this.create_player(); this.create_event();}// resetSpeedClass.prototype.reset = function(){ this.player = 0; this.level = $('level').value; // level this.playerlist = $_tag('li', 'playerlist'); for(var i=0; i<this.playerlist.length; i++){ this.playerlist[i].className = ''; } disp('start_btn', 'show', 'start_btn'); disp('go_btn', 'hide', 'go_btn'); this.lock = 0; // unlock this.isstart = 0; // unstart this.isover = 0; // unover}// create playerSpeedClass.prototype.create_player = function(){ var runway = []; var playerlist = []; for(var i=1; i<=8; i++){ runway[i] = '<li><div id="player' + (9-i) + '" class="run_status1"></div></li>'; playerlist[i] = '<li>' + i + '</li>'; } $('runway').innerHTML = runway.join(''); $('playerlist').innerHTML = playerlist.join(''); runway = null; playerlist = null;}// create eventSpeedClass.prototype.create_event = function(){ var self = this; this.playerlist = $_tag('li', 'playerlist'); for(var i=0; i<this.playerlist.length; i++){ this.playerlist[i].onmouseover = function(){  if(this.className!='on'){  this.className = 'over';  } } this.playerlist[i].onmouseout = function(){  if(this.className!='on'){  this.className = '';  } } this.playerlist[i].onclick = function(o,c){  return function(){  if(self.lock==0){   o.playerlist[c].className = 'on';   if(o.player!=0 && o.player!=c+1){ // 不等於0且不等於自己   o.playerlist[o.player-1].className = '';   }   o.player = c + 1;  }  } }(self, i); } $('start_btn').onmouseover = function(){ this.className = 'start_over_btn'; } $('start_btn').onmouseout = function(){ this.className = 'start_btn'; } $('start_btn').onclick = function(){ if(self.player==0){  return alert('請選擇要支持的選手'); }else{  self.lock = 1; // locked  disp('start_btn','hide');  disp('go_btn','show');  for(var i=1; i<=8; i++){  self.start(i);  } } } $('go_btn').onmouseover = function(){ this.className = 'go_over_btn';  } $('go_btn').onmouseout = function(){ this.className = 'go_btn'; } $('go_btn').onclick = function(){ self.go(); }}// start gameSpeedClass.prototype.start = function(c){ var o = $('player' + c); var step = 1; var self = this; var exert = 0; o.style.marginLeft = '62px'; // init  var et = setInterval(function(){ if(step<4){ // step 1-3 is ready  o.className = 'run_status' + step; }else{  // run  if(o.className!='running'){  o.className = 'running';  }  // start can go  if(self.isstart==0){  self.isstart = 1;  }  // 已有一名選手到達終點  if(self.isover==1){  clearInterval(et);  }else{  if(self.player!=c){ // 其他選手   exert = Math.floor(Math.random()* self.levelset[self.level])+3; // 根據level調整  }  o.style.marginLeft = parseInt(o.style.marginLeft) + Math.floor(Math.random()*8)+4 + exert + 'px';  // 到達終點  if(parseInt(o.style.marginLeft)>=745){    clearInterval(et);   self.isover = 1;   self.gameover(o.id);  }  } } step ++; }, 350)}// goSpeedClass.prototype.go = function(){ if(this.isstart==1 && this.isover==0){ var o = $('player' + this.player); var exert = Math.floor(Math.random()*3)+2; // 2-5 o.style.marginLeft = parseInt(o.style.marginLeft) + exert + 'px'; } return false;}// gameoverSpeedClass.prototype.gameover = function(id){ id = id.replace('player',''); var self = this; var msg = ''; if(id==this.player){ msg = "恭喜你,你支持的選手獲得勝利/n/n"; }else{ msg = "很遺憾,你支持的選手沒有獲得勝利,獲勝的是" + id + "號選/n/n"; } if(confirm(msg + '是否重新開始?')==true){ setTimeout(function(){  self.init(); },1000); }else{ return false; }}/** common function */// get document.getElementBy(id)function $(id){ this.id = id; return document.getElementById(id);}// get document.getElementsByTagNamefunction $_tag(name, id){ if(typeof(id)!='undefined'){ return $(id).getElementsByTagName(name); }else{ return document.getElementsByTagName(name);  }}/* div show and hide* @param id dom id* @param handle show or hide* @param classname*/function disp(id, handle, classname){ if(handle=='show'){ $(id).style.display = 'block'; }else{ $(id).style.display = 'none';  } if(typeof(classname)!='undefined'){ $(id).className = classname; }}/* img preload* @param img 要加載的圖片數組* @param callback 圖片加載成功后回調方法*/function img_preload(img, callback){ var onload_img = 0; var tmp_img = []; for(var i=0,imgnum=img.length; i<imgnum; i++){ tmp_img[i] = new Image(); tmp_img[i].src = img[i]; if(tmp_img[i].complete){  onload_img ++; }else{  tmp_img[i].onload = function(){  onload_img ++;  } } } var et = setInterval( function(){  if(onload_img==img.length){ // 定時器,判斷圖片完全加載后調用callback  clearInterval(et);  callback();  } },200);}

完整實例代碼點擊此處本站下載

相信本文所述對大家的javascript游戲設計有一定的借鑒價值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
大荫蒂欧美视频另类xxxx| 精品久久久香蕉免费精品视频| 亚洲国语精品自产拍在线观看| 欧美精品激情在线观看| 国产精品专区h在线观看| 国产精品美女免费看| 欧美一区二区视频97| 成人午夜在线观看| 91高潮精品免费porn| 久久99热这里只有精品国产| 欧美激情亚洲激情| 亚洲精品按摩视频| 91精品国产综合久久香蕉的用户体验| 欧美日韩亚洲精品内裤| 亚洲成人激情在线| 国产激情视频一区| 4438全国亚洲精品在线观看视频| 97在线免费观看| 欧美国产日韩在线| 成人黄色在线播放| 国产精品国产三级国产aⅴ9色| 国产成人中文字幕| 国产成人a亚洲精品| 欧美精品在线第一页| 欧美主播福利视频| 日韩美女av在线免费观看| 国产91精品黑色丝袜高跟鞋| 国内精品小视频在线观看| 国产欧美va欧美va香蕉在线| 久久久久久久av| 91夜夜揉人人捏人人添红杏| 国产精品老牛影院在线观看| 国产又爽又黄的激情精品视频| 性欧美视频videos6一9| 精品国产一区久久久| 成人免费激情视频| 日韩电影免费在线观看中文字幕| 成人性生交大片免费看小说| 欧美黄色免费网站| 正在播放欧美视频| 成人在线一区二区| 九九九热精品免费视频观看网站| 欧美三级欧美成人高清www| 九九久久综合网站| 国产不卡av在线免费观看| 亚洲第一色中文字幕| 亚洲欧美一区二区三区情侣bbw| 中文字幕亚洲一区在线观看| 国产一区二区三区视频免费| 亚洲jizzjizz日本少妇| 欧美成人在线免费视频| 久久国产一区二区三区| 精品久久久久久久中文字幕| 国产精品三级在线| 538国产精品一区二区在线| 亚洲美女性生活视频| 国产精品wwwwww| 亚洲视频网站在线观看| 欧美疯狂xxxx大交乱88av| 欧美性一区二区三区| 国产香蕉精品视频一区二区三区| 日韩欧美在线视频| 国产精品高清在线观看| 国产精品网站大全| 欧美精品免费在线观看| 国产精品视频白浆免费视频| 亚洲国产中文字幕在线观看| 日韩视频免费大全中文字幕| 国产午夜精品全部视频在线播放| 亚洲欧美中文日韩在线| 亚洲二区在线播放视频| 国产成人涩涩涩视频在线观看| 亚洲精品一区二区三区不| 国产精品久久久久福利| 亚洲系列中文字幕| xvideos国产精品| 国产一区玩具在线观看| 亚洲福利在线播放| 国产精品爽爽ⅴa在线观看| 欧美成人精品三级在线观看| 久久全球大尺度高清视频| 亚洲第一精品福利| 亚洲最大激情中文字幕| 亚洲国产91精品在线观看| 久久久久久一区二区三区| 2024亚洲男人天堂| 国产一级揄自揄精品视频| 欧美精品videossex性护士| 久久精品欧美视频| 国产精品av在线| 成人激情视频在线观看| 国产一区二区三区在线观看视频| 136fldh精品导航福利| 亚洲欧美国产日韩天堂区| 欧美一级大片视频| 91wwwcom在线观看| 一区二区三区日韩在线| 亚洲午夜激情免费视频| 国产精品久久久久久久久影视| 亚洲欧洲美洲在线综合| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品久久久久久久天堂| 国产在线视频一区| 亚洲日本aⅴ片在线观看香蕉| 亚洲天堂网站在线观看视频| 亚洲激情在线观看视频免费| 国产精品亚洲美女av网站| 国产一区二区三区在线观看视频| 国产日产久久高清欧美一区| 欧美在线免费视频| 久久久人成影片一区二区三区观看| 欧美中文在线视频| 日本午夜在线亚洲.国产| 欧美久久精品一级黑人c片| 欧美一级黄色网| 不卡av电影在线观看| 久久综合久久美利坚合众国| 国产大片精品免费永久看nba| 国产精品偷伦免费视频观看的| 国产精品狼人色视频一区| 国产欧美精品日韩精品| 91久久精品国产| 91视频88av| 亚洲欧美日韩中文在线制服| 久久6精品影院| 日韩在线视频导航| 亚洲精品456在线播放狼人| 国产综合视频在线观看| 中文字幕亚洲第一| 日日狠狠久久偷偷四色综合免费| 91欧美精品午夜性色福利在线| 色偷偷av一区二区三区| 日韩中文字幕视频| 欧美大秀在线观看| 91成人在线观看国产| 亚洲激情视频在线播放| 5566日本婷婷色中文字幕97| 久久视频在线免费观看| 亚洲精品www久久久久久广东| 久久av资源网站| 亚洲三级黄色在线观看| 国产精品久久一| 日韩视频免费看| 国产精品视频99| 免费不卡在线观看av| 91性高湖久久久久久久久_久久99| 欧美极品少妇xxxxⅹ裸体艺术| 日韩在线视频免费观看| 亚洲bt欧美bt日本bt| 91精品国产自产91精品| 成人高清视频观看www| 欧美最近摘花xxxx摘花| 中文字幕日韩精品在线观看| 成人免费视频97| 精品国产91久久久久久老师| 成人久久18免费网站图片| 在线观看国产欧美| 日本一区二区在线播放| 国产成人综合精品| 日韩电影在线观看中文字幕| 国产欧美日韩视频| 成人做爰www免费看视频网站| 俺去了亚洲欧美日韩| 日本久久中文字幕|