加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【cocos2dx 3.3 lua】04 纸牌翻转效果--类似QQ斗地主癞子效果

发布时间:2020-12-14 17:04:27 所属栏目:百科 来源:网络整理
导读:周末在家玩QQ斗地主,发现里面的癞子翻牌效果挺不错,于是想着自己做一个玩玩,于是有了如下代码: -- 卡牌旋转动画 -- 需要2张图,一张正面一张背面,否则会看到一张正面旋转了360度 local cardFace = self.rootLayer:getChildByName('CARD') local cardBac

周末在家玩QQ斗地主,发现里面的癞子翻牌效果挺不错,于是想着自己做一个玩玩,于是有了如下代码:


    -- 卡牌旋转动画
    -- 需要2张图,一张正面一张背面,否则会看到一张正面旋转了360度

    local cardFace = self.rootLayer:getChildByName('CARD')
    local cardBack = self.rootLayer:getChildByName('CARD_BACK')

    -- 单面旋转
    --cardFace:runAction( cc.OrbitCamera:create(4,1,360*4,0) )

    -- 正反面旋转
    local aniTime = 0.25
    ---[[
    self.rootLayer:runAction( cc.Repeat:create( cc.Sequence:create( 
        cc.CallFunc:create(
            function ( sender )
                cardFace:setVisible(true)
                cardBack:setVisible(false)
                cardFace:runAction( cc.OrbitCamera:create(aniTime/2,80,0) )
            end),cc.DelayTime:create(aniTime/2),cc.CallFunc:create(
            function ( sender )
                cardFace:setVisible(false)
                cardBack:setVisible(true)
                cardBack:runAction( cc.OrbitCamera:create(aniTime,180,cc.DelayTime:create(aniTime),cc.CallFunc:create(
            function ( sender )
                cardFace:setVisible(true)
                cardBack:setVisible(false)
                cardFace:runAction( cc.OrbitCamera:create(aniTime/2,270,90,cc.DelayTime:create(aniTime/2)
        ),5) )
    --]]
主要是利用了cc.OrbitCamera实现翻转,参数分别为:时间,半径,半径变化,起始z角度,翻转z角度,起始x角度,翻转x角度


解释如下:

2张牌,正反面

正面牌旋转90度,隐藏,出现反面牌,旋转180度,隐藏,出现正面牌,旋转90度,回到起始位置,重复动作

这里特别注意:

第一个角度不是90而是80,因为测试发现,90度时,旋转角会超过90度,影响效果,于是取了80.


效果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读