html5(熊与蘑菇)一步一步学做游戏 第三回:让熊动起来

这一回我们让熊动起来~ 预期达到效果: http://www.html5china.com/html5games/mogu/index2.html 一、先定义全局变量 JavaScript Code 复制内容到剪贴板 var bearEyesClosedImg= new Image(); //闭着眼睛的熊熊 var…

 这一回我们让动起来~

预期达到效果:http://www.html5china.com/html5games/mogu/index2.html

一、先定义全局变量

JavaScript Code 复制内容到剪贴板
  1. var bearEyesClosedImg = new Image();//闭着眼睛的熊熊    
  2. var horizontalSpeed = 2;//水平速度   
  3. var verticalSpeed = -2; //垂直速度,开始肯定是要向上飘,所以要负数   
  4. var bearAngle = 2;//熊旋转的速度  

二、定义熊

首先定义一只公用熊

JavaScript Code 复制内容到剪贴板
  1. //定义动物熊 Animal 继承 游戏对象GameObject   
  2. function Animal() {};   
  3. Animal.prototype = new GameObject();//游戏对象GameObject   
  4. Animal.prototype.angle = 0;//旋转的角度,(用来改变熊的旋转速度)  

定义我们使用的熊

JavaScript Code 复制内容到剪贴板
  1. //定义熊实例    
  2. var animal = new Animal();  

初始化熊

JavaScript Code 复制内容到剪贴板
  1. bearEyesClosedImg.src = "images/bear_eyesclosed.png";//闭着眼睛的   
  2. animal.image = bearEyesClosedImg;//熊图片   
  3. animal.x = parseInt(screenWidth/2);//x坐标   
  4. animal.y = parseInt(screenHeight/2); //y坐标  

三、描绘熊在画布上

因为熊是相对移动的,所以我们要加一个基准

JavaScript Code 复制内容到剪贴板
  1. //以当前熊的中心位置为基准   
  2. ctx.translate(animal.x + (animal.image.width/2), animal.y + (animal.image.height/2));   
  3. //描绘熊   
  4. ctx.drawImage(animal.image, - (animal.image.width/2), - (animal.image.height/2));  

但是要旋转啊,好的,想要改变它的角度,上面的代码中加入旋转

JavaScript Code 复制内容到剪贴板
  1. //以当前熊的中心位置为基准   
  2. ctx.translate(animal.x + (animal.image.width/2), animal.y + (animal.image.height/2));   
  3. //根据当前熊的角度轮换   
  4. ctx.rotate(animal.angle * Math.PI/180);   
  5. //描绘熊   
  6. ctx.drawImage(animal.image, - (animal.image.width/2), - (animal.image.height/2));  

上面的熊是不动的,为什么呢,因为x,y轴和角度没变,因此我们再加上改变x,y和角度的代码,于是上面的代码变成了

JavaScript Code 复制内容到剪贴板
  1. //改变移动动物X和Y位置   
  2. animal.x += horizontalSpeed;   
  3. animal.y += verticalSpeed;   
  4. //改变翻滚角度   
  5. animal.angle += bearAngle;   
  6. //以当前熊的中心位置为基准   
  7.         ctx.translate(animal.x + (animal.image.width/2), animal.y + (animal.image.height/2));   
  8. //根据当前熊的角度轮换   
  9.     ctx.rotate(animal.angle * Math.PI/180);   
  10. //描绘熊   
  11.     ctx.drawImage(animal.image, - (animal.image.width/2), - (animal.image.height/2));  

到现目前为止已经能滚动和移动了,最终代码如下:

展开 XML/HTML Code 复制内容到剪贴板

 第三回就讲到这了,第四回讲熊碰撞边界和蘑菇的事件

大家有什么建议的话,可以到论坛留言讨论:http://bbs.html5china.com/read.php?tid=2

希望大家在其他地方引用的时候,注明引用来自html5中文网

 --作者:深邃老马    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值