首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Canvas作游戏实践分享(二)

2012-08-22 
Canvas做游戏实践分享(二)2.游戏中的数学知识?在游戏的开发中,数学知识特别是其中的三角函数使用特别广泛2

Canvas做游戏实践分享(二)
2.游戏中的数学知识

?在游戏的开发中,数学知识特别是其中的三角函数使用特别广泛

2.1 角度

?????? 在使用canvas来制作动画的过程中,我们使用到的角度都是以弧度为单位的,角度与弧度之间的换算单位如下:

在三角函数中,最常用的有三个,Math.cos,Math.sin与Math.atan2,注意计算反正切的有两个函数Math.atan与Math.atan2,后者需要传入对边dy与邻边dx来求得精确的角度(在[-180,180]中正切值相同的角度会有两个)。如下:


Canvas作游戏实践分享(二)
?可以看出,对D角使用Math.atan2来得到的值将为-153.43。因此,如果我们需要求得任意一点P(x,y)与原点连线的角度,使用Math.atan2(y,x)即可。

2.2 旋转

????? 在游戏开发中,我们经常会碰到对于画布中对象的旋转,即使用到context.rotate方法,而其角度大多数情况下通过上述的Math.atan2(dy,dx)获得。计算一个动点与一个静点之间的实时角度,假设静点为originX,originY,动点为x,y.? 则

?

线性垂直波动

??? 如果给以正余弦方式垂直运动的对象加上一个横向的线速度,那就会动态地绘制出一个正余弦曲线。我们为ball添加vx,vy属性。

var dx=B.x-A.x;var dy=B.y-A.y;var distance=Math.sqrt(dx*dx+dy*dy);

热点排行