零基础学Cocos2d-X 3.0 - 02

先看看项目的文件布置


1. 是 cocos2d-X 引擎库以及拓展库,源码都在那里,可以进入看看实现

2. 是 Cocos2d-X 引擎入口,说白了就是我们主要编码的地方,文件命名仿 iOS

3. 是 框架哦~~~

4. 是 iOS 版项目运行的主入口,iOS 开发人员将可以看到熟悉的文件命名

5. 是 Mac 版项目运行的主入口

6. 是产品存放目录

7. 是资源文件,如图片


作为Cocos2d-X 的初学者,我只想知道自己怎么可以有能力进行使用 Cocos2d-X 引擎编程,其他细节暂时不需要理解,不需要知道如果从iOS 加载引擎等等。

所以目光投放在编码的那个地方,那里一共有4个文件,类似iOS 编程那样有 AppDelegate,ViewController。



AppDelegate.h 在声明一些方法,对 C++ 不熟悉的应该好好学习 C++, 包括我自己~~~



AppDelegate.cpp 看到这个图的代码,对于iOS 开发者来说多熟悉啊

当整个项目启动后,会调用 AppDelegate 类中的 applicationDidFinishLaunching 函数。在此之前,经历了什么,暂时没有必要知道。

当应用程序被切换到运行后台的时候,会调用 AppDelegate 类中的 applicationDidEnterBackground 函数。

而当应用程序从运行后台切换回来的时候,相对的会调用 AppDelegate 类中的 applicationWillEnterForeground 函数。


这三个函数都是很重要的,对于开发者来说,必须知道的。


接下来,我们看看里面写了什么内容吧。


回想一下,(假设你有iOS 开发经验)想想在 applicationDidFinishLaunching 函数里面,一般会进行哪些操作。

对的,我们一般会初始化 window 和 ViewController,然后为window 指定一个 rootViewController 对象。

而在 Cocos2d-X 中,我们必须 一个导演(Director 类)以及导演需要的表演舞台(GLView 类),还有就是要表演的哪场戏(Scene 类)。

初始化导演,导演只有一个。

auto director = Director::getInstance();

或者写成

Director *director = Director::getInstance();


初始化表演舞台,表演舞台也有一个哦。

auto glview = director->getOpenGLView();

    if(!glview) {

        glview = GLView::create("My Game");

        director->setOpenGLView(glview);

    }

或者写成

GLView *glview = director->getOpenGLView();

    if(!glview) {

        glview = GLView::create("My Game");

        director->setOpenGLView(glview);

    }

首先,要问下导演有没有表演舞台,如果导演说nil 之类表示没有,则我们就要为导演创建一个舞台,之后将这个舞台交给导演管理。


导演可以设置这个舞台很多信息,比如是否显示 FPS,设置这个舞台表演时每个动作的帧数(要你快速就快速,慢速就慢速)。

    director->setDisplayStats(true);

    director->setAnimationInterval(1.0 /60);


好了,导演、舞台都有了,该是时候初始化要演出哪场戏了。

auto scene = HelloWorld::createScene();

或者写成

Scene *scene = HelloWorld::createScene();

恩,一切准备好了。

导演说要马上上演这场戏了。

director->runWithScene(scene);


上戏了~~~~~~


当舞台的银幕被拉下来的时候,导演就会让大家停止一切动作,休息一下吧。

void AppDelegate::applicationDidEnterBackground() {

    Director::getInstance()->stopAnimation();


    // if you use SimpleAudioEngine, it must be pause

    // SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();

}

如果播放了音乐的话,也可以暂停休息啊~~~


而当舞台的银幕被拉起来的时候,导演就会大家开始动作,继续演戏了,开始工作咯。

void AppDelegate::applicationWillEnterForeground() {

    Director::getInstance()->startAnimation();


    // if you use SimpleAudioEngine, it must resume here

    // SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();

}

之前关了的音乐,也可以重写播放啊~~~




哈哈,感觉多热闹啊,不知不觉写成这么生动化啊~~~

不过解析的清楚就算了~~~~



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值