【cocos2d-x游戏开发】场景,层,精灵的区别
发布时间:2020-12-14 19:08:49 所属栏目:百科 来源:网络整理
导读:Scene (场景): 场景是cocos2d中的一个重要概念,可以理解为一个舞台,我们可以向这个舞台添加元素(层,精灵和控件),让这个舞台变得生动起来。场景用Scene表示它继承了Node类,下面的代码是用来创建一个场景 Scene* HelloWorld::createScene(){ // '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"); 创建精灵的方法不止一种,最简单的是用一张图片来创建一个精灵。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – MVC2 Html.ValidationMessageFor:添加htmlAttribute
- Ruby:如何使用’send’方法调用方法,使用哈希?
- AJAX file uploads in Rails using attachment_fu and resp
- ruby-on-rails – 在OS X 10.10上,gem install therubyrace
- sqlite+goahead+cgi
- Swift,我可以使用更具体的派生参数类型覆盖方法
- ruby-on-rails – 设计 – Omniauth – 如果用户通过Facebo
- 合并多行查询数据到一行:使用自连接、FOR XML PATH('&
- ruby-on-rails – 如何在csv中找到特定行
- DWR异步产生的问题