Canvas做游戏实践分享(二)
2.游戏中的数学知识
?在游戏的开发中,数学知识特别是其中的三角函数使用特别广泛
2.1 角度?????? 在使用canvas来制作动画的过程中,我们使用到的角度都是以弧度为单位的,角度与弧度之间的换算单位如下:
在三角函数中,最常用的有三个,Math.cos,Math.sin与Math.atan2,注意计算反正切的有两个函数Math.atan与Math.atan2,后者需要传入对边dy与邻边dx来求得精确的角度(在[-180,180]中正切值相同的角度会有两个)。如下:
2.2 旋转
?可以看出,对D角使用Math.atan2来得到的值将为-153.43。因此,如果我们需要求得任意一点P(x,y)与原点连线的角度,使用Math.atan2(y,x)即可。????? 在游戏开发中,我们经常会碰到对于画布中对象的旋转,即使用到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);