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 实现精灵的球面翻转或类似翻书操作,以及翻转轨迹优化问题的主要内容,如果未能解决你的问题,请参考以下文章

转载 排序

多线程的实现之实现Runnable接口

当一个类实现一个接口时,它必须实现该接口中的所有方法。(判断题)

项目——博客系统

java中,一个类实现了某个接口,啥意思?实现它,可以干啥

JAVA框架如何实现调用接口的实现类的呢?例实现httpsessionlistener接口类被调。