日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
蘑菇與熊游戲開發(fā)第八回(完善游戲)

第八回合中主要是完善游戲,給游戲加上開始按鈕、生命數(shù)、得分

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、成都網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團成都企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。核心團隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都食品包裝袋等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致贊揚!

預(yù)期達(dá)到的效果:http://www.html5china.com/html5games/mogu/index7.html

一、添加開始按鈕

A、html代碼中加入開始按鈕,并定位他于畫布的中間

 
 
 
  1.      

開始圖片下載地址:http://www.html5china.com/html5games/mogu/images/START-Button.png

B、全局變量

 
 
 
  1. var gameRunning = false;//游戲運行狀態(tài)      
  2. var gameloopId;//記住循環(huán)的變量    

C、原來是游戲自己開始沒有暫停的、寫一個開始暫停的函數(shù)

 
 
 
  1. //開始或者暫停游戲      
  2. function ToggleGameplay()      
  3. {      
  4.     gameRunning = !gameRunning;      
  5.     if(gameRunning)      
  6.     {      
  7.         $("#BtnImgStart").hide();      
  8.          gameloopId = setInterval(GameLoop, 10);       
  9.     }else      
  10.     {      
  11.         clearInterval(gameloopId);      
  12.     }      
  13. }    

D、添加開始按鈕事件

 
 
 
  1. //事件處理         
  2. function AddEventHandlers()         
  3. {         
  4.     //鼠標(biāo)移動則蘑菇跟著移動         
  5.     $("#container").mousemove(function(e){         
  6.         mushroom.x = e.pageX - (mushroom.image.width/2);         
  7.     });       
  8.     //開始按鈕         
  9.     $("#BtnImgStart").click(function (){              
  10.         ToggleGameplay();      
  11.     });      
  12. }     

注意,要把$(window).ready(function(){})函數(shù)中的setInterval(GameLoop, 10);去掉

#p#

二、添加生命數(shù)條

A、需要的全局變量

 
 
 
  1. var lives=3;//3條生命數(shù)      
  2. var livesImages = new Array();//生命圖片數(shù)組    

B、生命圖片初始化

 
 
 
  1. //生命圖片因為只有6個,所以最多只能6個      
  2. for(var x=0; x<6; x++)      
  3. {      
  4.     livesImages[x] = new Image();         
  5.     livesImages[x].src = "images/lives" + x + ".png";      
  6. }    

C、繪制生命條

 
 
 
  1. //描繪生命條      
  2. function DrawLives()      
  3. {      
  4.     ctx.drawImage(livesImages[lives], 0, 0);      
  5. }    

D、當(dāng)熊碰到底線時,減一條生命

 
 
 
  1. //熊碰到下面邊界      
  2. if(animal.y>screenHeight - animal.image.height)      
  3. {      
  4.     lives -=1;//生命減1     
  5.     //當(dāng)還有生命條時,暫停游戲,熊回到中間位置,顯出開始按鈕    
  6.     if(lives>0)      
  7.     {      
  8.         horizontalSpeed = speed; //初始化水平速度     
  9.         verticalSpeed = -speed; //初始化垂直速度    
  10.         animal.x = parseInt(screenWidth/2); //初始化熊的x坐標(biāo)    
  11.         animal.y = parseInt(screenHeight/2); //初始化熊的y坐標(biāo)      
  12.         $("#BtnImgStart").show(); //顯示開始按鈕     
  13.         ToggleGameplay(); //暫停游戲     
  14.         GameLoop(); //初始化繪圖     
  15.     }      
  16. }    

E、當(dāng)生命條數(shù)等于0或者獎品消滅完,游戲結(jié)束

 
 
 
  1. //結(jié)束游戲      
  2. function GameOver()      
  3. {      
  4.     gameRunning = false;      
  5.     clearInterval(gameloopId);      
  6.     alert("游戲結(jié)束!");      
  7. }    

在熊撞到底線的代碼中,加入判斷,當(dāng)生命數(shù)=0時,游戲結(jié)束

 
 
 
  1. if(lives<=0)      
  2.     GameOver();    

在繪制獎品函數(shù)中加入判斷,當(dāng)獎品被消滅完時,游戲結(jié)束

 
 
 
  1. //繪制獎品,把獎品顯示在畫布上      
  2. function DrawPrizes()      
  3. {      
  4.     for(var x=0; x
  5.     {      
  6.         currentPrize = prizes[x];                 
  7.         //假如沒有被撞擊,則描繪      
  8.         if(!currentPrize.hit)      
  9.         {      
  10.             ctx.drawImage(currentPrize.image, prizes[x].x, prizes[x].y);      
  11.         }      
  12.     }      
  13.     if(AllPrizesHit())      
  14.     {      
  15.         GameOver();      
  16.     }      
  17. }      
  18. //判斷是否撞完獎品,假如其中有一個      
  19. function AllPrizesHit()      
  20. {      
  21.     for(var c=0; c
  22.     {      
  23.         checkPrize = prizes[c];      
  24.         if(checkPrize.hit == false)      
  25.             return false;      
  26.                   
  27.     }      
  28.     return true;      
  29. }    

#p#

三、添加得分

A、定義全局變量

 
 
 
  1. var score = 0;//分?jǐn)?shù)      
  2. var scoreImg = new Image();//分?jǐn)?shù)板    

B、初始化分?jǐn)?shù)板

 
 
 
  1. scoreImg.src = "images/score.png";//分?jǐn)?shù)板    

C、給獎品加一個分?jǐn)?shù)屬性。這樣在撞獎品時才能知道得到多少分

 
 
 
  1. function Prize() {};      
  2. Prize.prototype = new GameObject();//繼承游戲?qū)ο驡ameObject      
  3. Prize.prototype.row = 0;//獎品行位置      
  4. Prize.prototype.col = 0;//獎品列位置      
  5. Prize.prototype.hit = false;//是否被撞過      
  6. Prize.prototype.point = 0;//分?jǐn)?shù)    

D、在初始化獎品數(shù)組中加入分?jǐn)?shù)

 
 
 
  1. //創(chuàng)建獎品數(shù)組      
  2. function InitPrizes()      
  3. {      
  4.     var count=0;      
  5.     //一共3行      
  6.     for(var x=0; x<3; x++)      
  7.     {      
  8.         //一共23列      
  9.         for(var y=0; y<23; y++)      
  10.         {      
  11.             prize = new Prize();      
  12.             if(x==0)      
  13.             {      
  14.                 prize.image = flowerImg;//鮮花放在***行      
  15.                 prize.point = 3;//鮮花3分      
  16.             }      
  17.             if(x==1)      
  18.             {      
  19.                 prize.image = acornImg;//豫子剛在第2行      
  20.                 prize.point = 2;//橡子2分      
  21.             }      
  22.             if(x==2)      
  23.             {      
  24.                 prize.image = leafImg;//葉子放在第3行      
  25.                 prize.point = 1;//葉子1分      
  26.             }      
  27.                       
  28.             prize.row = x;      
  29.             prize.col = y;      
  30.             prize.x = 20 * prize.col + 10;//x軸位置      
  31.             prize.y = 20 * prize.row + 40;//y軸位置      
  32.             //裝入獎品數(shù)組,用來描繪      
  33.             prizes[count] = prize;      
  34.             count++;      
  35.         }      
  36.     }      
  37. }    

E、當(dāng)熊撞到獎品時,根據(jù)碰撞獎品的分?jǐn)?shù)增加總分

 
 
 
  1. //撞到獎品      
  2. function HasAnimalHitPrize()      
  3. {      
  4.     //取出所有獎品      
  5.     for(var x=0; x
  6.     {      
  7.         var prize = prizes[x];      
  8.         //假如沒有碰撞過      
  9.         if(!prize.hit)      
  10.         {      
  11.             //判斷碰撞      
  12.             if(CheckIntersect(prize, animal, 0))      
  13.             {      
  14.                 prize.hit = true;      
  15.                 //熊反彈下沉      
  16.                 verticalSpeed = speed;      
  17.                 //總分增加      
  18.                 score += prize.point;      
  19.             }      
  20.         }      
  21.     }      
  22.      
  23. }    

F、繪制分?jǐn)?shù)

 
 
 
  1. //描繪分?jǐn)?shù)      
  2. function DrawScore()      
  3. {      
  4.     ctx.drawImage(scoreImg, screenWidth-(scoreImg.width),0);//分?jǐn)?shù)板      
  5.     ctx.font = "12pt Arial";      
  6.     ctx.fillText("" + score, 425, 25);  //得分      
  7. }    

#p#

綜合上面的代碼, 到此第八回的完整代碼如下:

 
 
 
  1.         
  2.         
  3.         
  4.         
  5. 繪制獎品-html5中文網(wǎng)        
  6.      
  7.         
  • <td id="fhswu"></td>