cocos 动画

动画

顺序动画和融合动画

local sequence=cc.Sequence:create(cc.Spawn:create(bazier,rotate),cc.CallFunc:create(callFunc),nil)

动画

1.贝塞尔曲线
--获得一个贝塞尔曲线的Action
--@param posFrom 运动起点
--@param posTo 运动结束点
--@param time 运动的持续时间
--@return Action
function GameArea: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 返回贝塞尔曲线的中间坐标
function GameArea:getMidPoint(posFrom,posTo,time)
    local y = posFrom.y
    if posTo.y > y then 
        y = posTo.y
    end 
    local y = y * 3 /2
    local posRet = cc.p((posFrom.x + posTo.x) / 2,y)
    return posRet
end

--获得整个进行贝塞尔曲线的时间,时间的计算方式是两点的距离*速度
--@param posFrom 运动起点
--@param posTo 运动结束点
--@return 返回float类型的时间
function GameArea:getDropTime(posFrom,posTo,speed)
    local time = 10
    local distance = (posFrom.x - posTo.x) * (posFrom.x - posTo.x) + (posFrom.y - posTo.y) * (posFrom.y - posTo.y)
    if distance < 0 then
        distance = -distance
    end
    distance = math.sqrt(distance)
    time = distance*speed
    return time
end
2.旋转
local rotate= cc.RotateTo:create(duration, 30)
移动
local move= cc.MoveTo:create(duration,cc.p(0,9))

猜你喜欢

转载自blog.csdn.net/qq_31336891/article/details/80708626
今日推荐