cocos2dx:CCOrbitCamera 实现精灵的球面翻转或类似翻书操作,以及翻转轨迹优化问题
Posted ImGamerX
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2dx:CCOrbitCamera 实现精灵的球面翻转或类似翻书操作,以及翻转轨迹优化问题相关的知识,希望对你有一定的参考价值。
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);//解决翻转轨迹问题
至此就是两个方法的主要代码及原理,具体细节还需要各位猿友实际进行操作调节。
希望能给大家带来帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~
当一个类实现一个接口时,它必须实现该接口中的所有方法。(判断题)
参考技术A对。
必须实现该接口中的所有方法。也可以自定义接口中没有的方法。抽象类实现某个接口,可以不实现所有接口的方法,可以由它的子类实现。
public interface A //定义一个接口
public void show();//定义一个接口方法
public abstract class AExtend implements A//抽象类实现接口A,但可以不实现show方法,由子类再去实现
扩展资料:
接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。
Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。但是接口不是类,不能使用new 运算符实例化一个接口。如 x=new comparable(......);//这个是错误来的。但是可以声明接口变量Comparable x; //这是允许的。
参考资料来源:百度百科-java接口
以上是关于cocos2dx:CCOrbitCamera 实现精灵的球面翻转或类似翻书操作,以及翻转轨迹优化问题的主要内容,如果未能解决你的问题,请参考以下文章