因为本人数学并不好,实在不知道该怎么下笔了。
场景是移动的过程中遇到墙则跳跃。先来看我的移动逻辑。代码写在update函数中
因为本人数学并不好,实在不知道该怎么下笔了。
场景是移动的过程中遇到墙则跳跃。先来看我的移动逻辑。代码写在update函数中
var curPos = self.getPosition();
var dp = self.ccpSub(target, curPos); //目标坐标 减去 当前坐标
var length = self.ccpLength(dp); //计算两个坐标间的距离
if (length > 0.0001) {
//注:ccpMult: function (v, s) { return cc.v2(v.x * s, v.y * s); },
self.direction_ = self.ccpMult(dp, 1 / length); //方向 dp是 v2距离 。结果 v2 的xy乘以距离的百分之一
}
var moveLen = (self.speed - self.speed * 0.5 * Math.abs(self.direction_.y) ) * timespan; //timespan->update传入参数
if (length < moveLen) {
//取下一个目标点,将isReadyToJump改为false
// 遇到的问题在这里。如果下一个目标点是墙的话,则将全局变量isReadyToJump改为true
}
if (self.isReadyToJump)
{
self.setPosition(self.ccpAdd(curPos, self.ccpMult(cc.v2(self.direction_.x+40,self.direction_.y), moveLen)));
//这里写跳跃的逻辑。就是这里的坐标更新不知道该怎么写了,捣鼓一天没写出来,后悔当初没好好学习了,有没有大神给指点一下
}
//一个小目标的移动
self.setPosition(self.ccpAdd(curPos, self.ccpMult(self.direction_, moveLen)));
}