local sequence=cc.Sequence:create(cc.Spawn:create(bazier,rotate),cc.CallFunc:create(callFunc),nil)
动画
1.贝塞尔曲线
--获得一个贝塞尔曲线的Action--@param posFrom 运动起点--@param posTo 运动结束点--@param time 运动的持续时间--@return ActionfunctionGameArea:bezier(posFrom,posTo,duration)local posMid = self:getMidPoint(posFrom,posTo,duration)
local points = {posFrom,posMid,posTo}
local action = cc.BezierTo:create(duration,points)
return action
end--此方法是将y轴抬高,返回两个点的中间坐标--@param posFrom 运动起点--@param posTo 运动结束点--@param time 运动的持续时间--@return 返回贝塞尔曲线的中间坐标functionGameArea:getMidPoint(posFrom,posTo,time)local y = posFrom.y
if posTo.y > y then
y = posTo.y
endlocal y = y * 3 /2local posRet = cc.p((posFrom.x + posTo.x) / 2,y)
return posRet
end--获得整个进行贝塞尔曲线的时间,时间的计算方式是两点的距离*速度--@param posFrom 运动起点--@param posTo 运动结束点--@return 返回float类型的时间functionGameArea:getDropTime(posFrom,posTo,speed)local time = 10local distance = (posFrom.x - posTo.x) * (posFrom.x - posTo.x) + (posFrom.y - posTo.y) * (posFrom.y - posTo.y)
if distance < 0then
distance = -distance
end
distance = math.sqrt(distance)
time = distance*speed
return time
end