cocos2dx:CCOrbitCamera 实现精灵的球面翻转或类似翻书操作,以及翻转轨迹优化问题

40 篇文章 0 订阅
37 篇文章 0 订阅

cocos2dx:CCOrbitCamera 实现精灵的球面翻转或类似翻书操作,以及翻转轨迹优化问题

设备/引擎:Mac(11.6)/cocos

开发工具:Xcode(13.0)

开发需求:CCOrbitCamera 实现精灵的球面翻转或类似翻书操作,以及翻转轨迹优化问题

今天要说的需求简单讲就是用cocos2d来实现3D翻转效果,有两种方法,一种就是通过ScaleX来实现翻转的效果,不过这个方法因为是对两个精灵进行=缩放操作,所以需要控制间隔时间,需要细调,耗费时间;另一个方法就是使用CCOrbitCamera函数来实现球面翻转效果。

1.ScaleX
原理很简单:翻转前的精灵ScaleX减小的同时,准备翻转的精灵ScaleX变大,控制好时间,视觉上就会有3D翻转的效果。

//需要显示的精灵设置初始的ScaleX
cardSprite->setScaleX(0.0);
//已经显示的精灵的动作
CCScaleTo* scale1 = CCScaleTo::create(0.3, 0, 1);

以上包含3个参数,分别为时间、scalex、scaley

//需要显示的精灵的动作
CCScaleTo* scale2 = CCScaleTo::create(0.3, 1, 1);

以上包含3个参数,分别为时间、scalex、scaley

点击精灵后,注意调用对应正确动作,实际效果需要自行测试调节,比较耗时。

2.CCOrbitCamera
代码如下:

CCOrbitCamera* orbit1 = CCOrbitCamera::create(0.5, 1, 0, 0, 180, 0, 0);

函数参数介绍介绍:时间、起始半径、半径差、起始Z角、旋转Z角角度、起始X角、旋转X角角度;

同样也是需要注意对应精灵调用正确的动作。

注:使用该函数一定要设置一下setDepthTest为false,原因在于使用网格之前需要取消OpenGL的深度检测,不设置的结果就是,旋转效果会有卡顿,看着只有一半,大家可以实际试一下代码如下

CCDirector::sharedDirector()->setDepthTest(false);//解决翻转轨迹问题

至此就是两个方法的主要代码及原理,具体细节还需要各位猿友实际进行操作调节。

希望能给大家带来帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GameTomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值