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