cocos2dx3.0 C++开发 零基础入门笔记
发布时间:2020-12-14 16:53:11 所属栏目:百科 来源:网络整理
导读:测试代码环境: VS2013 + cocos 2d x 3.0 程序执行流程 1、AppDelegate::applicationDidFinishLaunching() 2、创建场景createScene。 3、导演执行runWithScene 导演: CCDirector获取: [cpp] view plain copy autodirector=Director::getInstance(); 导演可
测试代码环境:
VS2013 + cocos 2d x 3.0 1、AppDelegate::applicationDidFinishLaunching() 2、创建场景createScene。 3、导演执行runWithScene 导演: CCDirector获取:
导演可以获取到视图信息,以及对视图显示相关项进行配置等。 获取界面可视区域大小 copy
场景: 一个界面为一个场景。场景继承于层Layer。 导演控制场景的显示,场景有多层,没层里有许多精灵,精灵有各种动作。 很常用的类如下: copy
如何自定义场景?答: 1、首先派生自public cocos2d::Layer。 2、让场景自动释放。CREATE_FUNC(MyAppScene); 3、添加创建场景实现。 copy
4、重写虚函数 virtual bool init() override; 在场景里添加精灵。 copy
中文乱码如何解决? 答: 由于在cocos2d-x中直接使用中文会出现乱码,谁让cocos2d-x是由cocos2d而来,而cocos2d这东西是老外写的呢?通常解决中文乱码有两种方法: (1)使用iconv库,cocos2d-x中提供了这个库,但是只是在win32平台,当程序移植到Android等平台时,需要自己下载iconv库编译。 (2)将中文字符串写到XML文件中(注意XML文件格式保存为UTF-8),然后解析XML文件,格式可以仿照Android中的strings.xml,而且这种方法能方便以后的国际化。 通过比较,可以很容易的发现第二种方法更好,那么下面就介绍第二种方法,让我们能在cocos2d-x程序中使用中文,彻底解决中文乱码问题。 二 实现 1 、新建XML文件,按照一定的格式,输入相应要显示的中文,最后一定需要使用UTF-8格式保存文件
[html]
copy
2 、代码实现 copy
水平翻转、或者垂直翻转精灵(图片)如何实现? 答:可以让精灵执行动作CCFlipX、CCFlipY实现 copy
如何按照顺序执行一序列预先制定的动作? 答:可以使用CCSequence。 copy
如何在某一动作执行完后加个延迟时间? 可以使用CCDelayTime实现。 如何在某一动作执行完后调用指定的函数? 可以使用CCCallFunc、CCCallFuncN、CCCallFuncND、CCCallFuncO实现。 分别代表的签名为: CCCallFunc -- 函数无返回值,无参数。 CCCallFuncN -- 函数无返回值,有一个CCNode*的指针 CCCallFuncND -- 一个void*的参数。 CCCallFuncO -- 这个函数与CCCallFuncN差不多,只不过回调函数的参数是CCObject*类型。 如何查看一些常用的宏来简化程序,让程序更简洁呢? 查看头文件CCPlatformDefine.h,有很多非常常用的宏。
copy
等等。 如何让一序列图片动起来,跟gif一样的效果呢? 1、创建CCAnimation对象。 2、为CCAnimation对象添加动画帧addSpriteFrame。 3、为CCAnimation对象设置帧间隔setDelayPerUnit。 4、通过CCAnimation对象创建CCAnimate对象。 4、创建精灵。 5、让精灵去执行CCAnimate对象。 copy
如何播放音乐? 答:使用SimpleAudioEngine。 copy
如何使用定时器? 答:使用schedule函数即可。 使用步骤: 1、定义定时器定时调用函数 copy
2、执行定时器。 copy
如何切换场景? 答:通过导演进行切换场景。 copy
一般此函数有两个参数,第一个是特效的切换时间,直接生成一个CCTime即可,例子中设定的时间是1.2s,对于很多场景的显示都很舒服,第二个是要进入的场景,有的会有第三个参数,会在下面介绍 场景切换效果汇总:create CCTransitionJumpZoom::create(t,s); // 跳跃式,本场景先会缩小,然后跳跃进来 CCTransitionFade::create(t,s); // 淡出淡入,原场景淡出,新场景淡入 CCTransitionFlipX::create(t,kOrientationLeftOver); // x轴左翻 CCTransitionFlipY::create(t,kOrientationUpOver); //y轴上翻 CCTransitionFlipAngular::create(t,kOrientationLeftOver); //有角度转的左翻 CCTransitionZoomFlipX::create(t,kOrientationLeftOver); //带缩放效果x轴左翻 CCTransitionZoomFlipY::create(t,kOrientationUpOver); //带缩放效果y轴上翻 CCTransitionZoomFlipAngular::create(t,kOrientationLeftOver); //带缩放效果/有角度转的左翻 CCTransitionShrinkGrow::create(t,s); //交错换 CCTransitionRotoZoom::create(t,s); //转角换 CCTransitionMoveInL::create(t,s); //新场景从左移入覆盖 CCTransitionMoveInR::create(t,s); //新场景从右移入覆盖 CCTransitionMoveInT::create(t,s); //新场景从上移入覆盖 CCTransitionMoveInB::create(t,s); //新场景从下移入覆盖 CCTransitionSlideInL::create(t,s); //场景从左移入推出原场景 CCTransitionSlideInR::create(t,s); //场景从右移入推出原场景 CCTransitionSlideInT::create(t,s); //场景从上移入推出原场景 CCTransitionSlideInB::create(t,s); //场景从下移入推出原场景 以下三个需要检测opengl版本是否支持 CCConfiguration::sharedConfiguration()->getGlesVersion() <= GLES_VER_1_0如果为真则为不支持 CCTransitionCrossFade::create(t,s); //淡出淡入交叉,同时进行 CCTransitionRadialCCW::create(t,s); //顺时针切入 CCTransitionRadialCW::create(t,s); //逆时针切入 以下两个需要先设置摄像机,使用CCDirector::sharedDirector()->setDepthTest(true); CCTransitionPageTurn::create(t,false); //翻页,前翻 CCTransitionFadeTR::create(t,s); //向右上波浪 CCTransitionFadeBL::create(t,s); //向左下波浪 CCTransitionFadeUp::create(t,s); //向上百叶窗 CCTransitionFadeDown::create(t,s); //向下百叶窗 CCTransitionTurnOffTiles::create(t,s); //随机小方块 CCTransitionSplitRows::create(t,s); //按行切 CCTransitionSplitCols::create(t,s); //按列切 什么是粒子系统,如何使用粒子系统实现下雪效果? 粒子系统是为了模仿自然世界的真实显现,比如说烟,雾,火花,闪电,火焰,下雪。 粒子系统中需要包括四个部分:粒子对象,运动规律,随机性,粒子状态。 大量的粒子叠加就可以产生我们需要的特效。
FROM:http://blog.csdn.net/xuminglong/article/details/38185303 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |