周末在家玩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.
效果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。