欢迎来到【畅哥聊技术】前端图形学相关技术文章,更多精彩内容持续更新中,敬请关注。
前面我们说到了小球的弹跳运动,通过一个方向的加速度和摩擦力去影响小球的动画,其目标点也是一个固定不变的,似乎有些单调。
那么我们今天继续小球的弹跳运动的深入,先来看下面的示例:
傲娇的小球
相信以上的类似动画大家应该看见过很多,这样的动画很容易被大家所接受,原因很简单,因为它完全符合我们现实生活中的物理现象。
接下来我带着大家来分析一下这种动画的制作过程。
分析核心代码:
//鼠标起始位置。 var mouse = {x:0,y:0}; //兼听画布的鼠标移动事件,并计算出鼠标相对于画布的坐标。 canvas.onmousemove = function(e){ mouse.x = e.pageX - canvas.offsetLeft; mouse.y = e.pageY - canvas.offsetTop; } //定义弹动系数,摩擦系数,重力常量 var easeing = 0.15,k = .9,g = 15; //两个方向的加速度的计算方法(和昨天一样) var ax = (mouse.x - ball.x ) * easeing; var ay = (mouse.y - ball.y ) * easeing; //将加速度附加到小球的速度上 ball.vx = ax ; ball.vy =ay; //给小球加上摩擦力的影响。 ball.vx *= k; ball.vy *= k; //将小球的最终速度作用在小球的xy属性上。 ball.x = ball.vx; ball.y = ball.vy; //由于小球和鼠标有重力的影响,所以我们给y轴的速度一个重力的作用。 ball.vy = g;
最终全部代码:
源码索取请私信我
其实看代码数量并不多,大家刚开始可能是被鼠标晃晕了头,其实可以这样想,鼠标操作是一个循环的操作,假如鼠标就动一下,把这个过程的动画实现了,其它的就好办了。
总结:以上就是今天的分享的内容,喜欢的点赞关注,不喜欢的解散。。。
这里是【畅哥聊技术】前端图形学相关技术文章,更多精彩内容持续更新中。。。
未完待续。。。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved