【cocos2d-x游戏开发】场景,层,精灵的区别

【cocos2d-x游戏开发】场景,层,精灵的区别,第1张

概述Scene (场景): 场景是cocos2d中的一个重要概念,可以理解为一个舞台,我们可以向这个舞台添加元素(层,精灵和控件),让这个舞台变得生动起来。场景用Scene表示它继承了Node类,下面的代码是用来创建一个场景 Scene* HelloWorld::createScene(){ // 'scene' is an autorelease object auto scene

Scene (场景):

场景是cocos2d中的一个重要概念,可以理解为一个舞台,我们可以向这个舞台添加元素(层,精灵和控件),让这个舞台变得生动起来。场景用Scene表示它继承了Node类,下面的代码是用来创建一个场景

Scene* HelloWorld::createScene(){    // 'scene' is an autorelease object    auto scene = Scene::create();           //创建一个场景类        // 'layer' is an autorelease object    auto layer = HelloWorld::create();       //创建一个HelloWorld对象,找个对象是一个层,    // add layer as a child to scene    scene->addChild(layer);                   //将layer对象添加到scene对象中    // return the scene    return scene;                    //最后返回一个scene场景对象}

已经创建好了一个场景下面就要把这个场景添加到我们的窗口中去
bool AppDelegate::applicationDIDFinishLaunching() {    // initialize director    auto director = Director::getInstance();    auto glvIEw = director->getopenGLVIEw();    if(!glvIEw) {        glvIEw = GLVIEw::create("My Game");              //设置窗口的名字		glvIEw->setFrameSize(1024,768);                  //设置窗口的大小        director->setopenGLVIEw(glvIEw);    }    // turn on display FPS    director->setdisplayStats(true);                           //设置是否显示游戏的帧率等调试信息    // set FPS. the default value is 1.0/60 if you don't call this    director->setAnimationInterval(1.0 / 60);                //设置帧率,这里是每秒60帧    // create a scene. it's an autorelease object    auto scene = HelloWorld::createScene();                 ///用来说明创建的场景是有哪个头文件创建的(设置默认的启动场景)    // run    director->runWithScene(scene);                    //将初始场景加载到环境中,次函数只能在家在第一个场景是使用    return true;}
说道这里我们有必要说一个Director这个类,这是一个导演类,它的功能很强大,比如说场景的切换,游戏的暂停与继续,世界坐标和GL坐标之间的切换,对于精灵的控制,还有一些数据的保存,屏幕尺寸的获取等等都需要用到这个强大的“导演”。

在创建场景的过程中用到了create函数来创建,创建的过程中调用了init函数,这是由系统自动调用的,用的正是一个宏函数,如下

#define CREATE_FUNC(__TYPE__) \static __TYPE__* create() \{ \    __TYPE__ *pRet = new __TYPE__(); \    if (pRet && pRet->init()) \    { \        pRet->autorelease(); \        return pRet; \    } \    else \    { \        delete pRet; \        pRet = NulL; \        return NulL; \    } \}
这是系统创建的一个宏函数,参数是_TYPE_。比如说你传进来的是HelloWorld,那么代码中所有_TYPE_的地方都要换成HelloWorld,采用这样的方法来完成初始化工作。

Layer (层):

下面说一些关于层的一些概念。顾名思义,层就是依附于场景之上的图层,它可以响应用户的 *** 作事件,另外在一个场景中,层与层还是有区别的有些层会覆盖在其它层上方,这是由用户自己设定的。创建一个层很简单

Layer* layer = Layer::create();
一个层必须添加到场景中才能发挥作用,也就是说,层无法抛开场景而独立存在。

Sprite(精灵) :

精灵可以理解为游戏中的对象,创建方法如下:

Sprite* sprite = Sprite::create("Closenormal.png");

创建精灵的方法不止一种,最简单的是用一张图片来创建一个精灵。

总结

以上是内存溢出为你收集整理的【cocos2d-x游戏开发】场景,层,精灵的区别全部内容,希望文章能够帮你解决【cocos2d-x游戏开发】场景,层,精灵的区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1004627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存