最近自己写RPG,发现在角色对象运动上面还是可以运动到不少的以前数学知识(经理各种纠结的脑补),好久没有写博客了,趁热总结一下算法思路,免得自己过两天又忘了。
已知角色速度和目的地,求每帧位置
已经知道了一个角色 bodyA速度为像素/秒
float speed = 5
目的地为 Point destination
当前地点为 Point currentPosition = bodyA.getPosition()
那么帧循环里面应该怎样计算角色的当前位置呢?
方案1.计算量小但是不精确
Vec2 vec = destination - currentPosition;
vec.normalize();单位化
Point nextPosition = vec * speed + currentPosition
方案2.运动旋转函数 rotateByAngle精确,计算量大
参数1.角色当前位置
参数2.速度向量
参数3.速度
返回:从Point startPoint开始,沿着某个向量方向移动 range个像素的Point
{