日期:2014-05-17  浏览次数:20636 次

html5 手把手教你做游戏《熊和蘑菇》(八)
完善游戏
第八回合中主要是完善游戏,给游戏加上开始按钮、生命数、得分
预期达到的效果:http://www.html5china.com/html5games/mogu/index7.html
一、添加开始按钮
A、html代码中加入开始按钮,并定位他于画布的中间
XML/HTML Code复制内容到剪贴板
1. <img id="BtnImgStart" style="position: absolute; left: 200px; top: 200px; cursor: pointer; float: left; display: block; " src="./images/START-Button.png">  
开始图片下载地址:http://www.html5china.com/html5games/mogu/images/START-Button.png
B、全局变量
JavaScript Code复制内容到剪贴板
1. var gameRunning = false;//游戏运行状态  
2. var gameloopId;//记住循环的变量 
C、原来是游戏自己开始没有暂停的、写一个开始暂停的函数
XML/HTML Code复制内容到剪贴板
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、添加开始按钮事件
JavaScript Code复制内容到剪贴板
1. //事件处理     
2. function AddEventHandlers()     
3. {     
4.     //鼠标移动则蘑菇跟着移动     
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(){})函数中的setInterval(GameLoop, 10);去掉
二、添加生命数条
http://wjlgryx.iteye.com
A、需要的全局变量
JavaScript Code复制内容到剪贴板
1. var lives=3;//3条生命数  
2. var livesImages = new Array();//生命图片数组 
B、生命图片初始化
JavaScript Code复制内容到剪贴板
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、绘制生命条
JavaScript Code复制内容到剪贴板
1. //描绘生命条  
2. function DrawLives()  
3. {  
4.     ctx.drawImage(livesImages[lives], 0, 0);  
5. } 
D、当熊碰到底线时,减一条生命
JavaScript Code复制内容到剪贴板
1. //熊碰到下面边界  
2. if(animal.y>screenHeight - animal.image.height)  
3. {  
4.     lives -=1;//生命减1 
5.     //当还有生命条时,暂停游戏,熊回到中间位置,显出开始按钮
6.     if(lives>0)  
7.     {  
8.         horizontalSpeed = speed; //初始化水平速度 
9.         verticalSpeed = -speed; //初始化垂直速度
10.         animal.x = parseInt(screenWidth/2); //初始化熊的x坐标
11.         animal.y = parseInt(screenHeight/2); //初始化熊的y坐标  
12.         $("#BtnImgStart").show(); //显示开始按钮 
13. &nbs