Cocos2dx实现翻牌效果(CCScaleTo与CCOrbitCamera两种方式)

由于项目需要实现翻牌的效果,所以自己在完成的过程中将这篇文章写下来,想想还是觉得有点艰辛。

开始在网上找解决的办法找了很久,基本上就是一种解决方案,就是用CCOrbitCamera这个Action类来模拟实现翻牌的效果。

但是我在使用的效果中始终不如人意。

用CCOrbitCamera类实现倒是能实现,但是如果将牌移动到左上、左下或者其他不在屏幕中心的位置那这个效果就不行了,翻牌的位置就错误了,类似3D的了。

找了半天终于知道是什么原因了,Cocos2dX里面有这样的一句话,

CCDirector::sharedDirector()->setProjection(kCCDirectorProjection3D);

就是这个3D,Cocos2DX支持透视投影和正交投影两种模式,于是乎我把kCCDirectorProjection3D改成kCCDirectorProjection2D,对了,有感觉了。

这样一设置翻牌的动作就不是3D感了,就是正常的这种翻牌的感觉了。

但是项目中其他的图片出现了锯齿,这就不能忍了。

在用了很多办法都不能消除锯齿的时候我尝试到去读Cocos2dx关于设置setProjection函数的内容,看是否能够将锯齿避免,让翻转变得自然。

最终我失败了,确实还是太菜了不行。

我于是找替代方案来实现翻牌的动作,就找到了CCScaleTo来实现,这过程确实还是比较艰辛。

下面我把两种方案的关键代码都贴出来,方便大家看看吧。

1. 首先还是用CCOrbitCamera类实现翻牌的效果(我封装成了一个函数)。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值