cocos 动画

10 篇文章 0 订阅

动画

顺序动画和融合动画
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))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值