创建场景

今天开始学习Cocos2d-x,使用的版本是2.1.4,这个版本比较老,对应的参考资料也比较齐全。

在mac/xcode环境下,代码是写在Classes文件夹下的,和iOS应用类似,程序从AppDelegate.cpp开始,这当中也有一些生命周期方法,其中有一个

applicationDidFinishLaunching方法:


 1 bool AppDelegate::applicationDidFinishLaunching()
2 {
3 // 创建一个导演类
4 CCDirector *pDirector = CCDirector::sharedDirector();
5 pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
6 // 设置是否显示FPS
7 pDirector->setDisplayStats(true);
8 //设置帧率
9 pDirector->setAnimationInterval(1.0 / 60);
10 //创建一个初始场景
11 CCScene *pScene = MainScene::scene();
12 //执行游戏
13 pDirector->runWithScene(pScene);
14 return true;
15 }

这部分代码的意图很容易理解,不多解释了,在项目创建的时候,默认带有一个HelloWorld类,把这个类删掉,我们自己建立一个MainScene场景:

.h文件:


 1 #ifndef __MyGame__MainScene__
2 #define __MyGame__MainScene__
3
4 #include <iostream>
5 #include "cocos2d.h" //导入头文件
6 using namespace cocos2d; //使用命名空间
7
8 //场景继承自CCLayer,是一个层的子类
9 class MainScene : public CCLayer {
10 public:
11 //一个虚函数初始化方法
12 virtual bool init();
13 //一个用于构建场景的静态方法
14 static CCScene *scene();
15 //通过宏,生成一个叫做create的工厂方法
16 CREATE_FUNC(MainScene);
17 };

其中CREATE_FUNC是一个宏,用于创建一个工厂方法,它的实现是:


 1 #define CREATE_FUNC(__TYPE__)  2 static __TYPE__* create()  3 {  4     __TYPE__ *pRet = new __TYPE__();  5     if (pRet && pRet->init())  6     {  7         pRet->autorelease();  8         return pRet;  9     } 10     else 11     { 12         delete pRet; 13         pRet = NULL; 14         return NULL; 15     } 16 }

.m文件:


 1 #include "MainScene.h"
2
3 //一个用于构建场景的静态方法
4 CCScene *MainScene::scene() {
5 //首先通过CCScene的工厂方法创建了一个场景
6 CCScene *scene = CCScene::create();
7 //调用由宏生成的工厂方法创建了一个层对象
8 MainScene *layer = MainScene::create();
9 //将图层添加到场景上
10 scene->addChild(layer);
11 //返回场景
12 return scene;
13 }
14
15 //在MainScene::create方法当中调用
16 bool MainScene::init() {
17 //首先调用父类的构造方法
18 if (!CCLayer::init()) {
19 return false;
20 }
21
22 //使用图片创建一个精灵,注意Resource下的文件不需要加路径
23 CCSprite *sprite = CCSprite::create("Icon-72.png");
24 //为场景增加一个精灵
25 this->addChild(sprite);
26
27 return true;
28 }

这里有一些概念:

一个游戏有多个场景,这些场景之间通过导演来控制切换;一个场景内可以有多个层,每个层上也可以有多个精灵。

这样,一个最基本的游戏画面就创建出来了。

创建场景,布布扣,bubuko.com

时间: 2024-10-16 19:48:41

创建场景的相关文章

搭建LoadRunner中的场景(一) 创建场景

一.创建场景 1. 使用场景创建设置对话框 场景分类: 1. 人工场景:相比面向目标场景,人工场景在实际工作中的应用更为广泛. 2. 面向目标场景:预先定义了一个测试目标,LoadRunner将根据这个目标自动构建场景,有点类似向导模式. 手动场景的两种方式: 用户组方式:虚拟用户分组,测试工程师可以自由地分配各组用户数量(LoadRunner默认用户组方式): 分布百分比方式:需要测试工程师指定某些用户所占的百分比和用户总数,系统再根据这些数据计算产生出具体某类用户的数量(通过勾选"Use t

创建场景——02地形编辑器

学习笔记适合新手,如有错误请指正.?号处也请各位指点下,谢谢. 在Project视图中点击鼠标右键>Import Package>Environment,弹出资源导入窗口 点击Import按钮,导入环境资源宝 点击导航菜单栏>GameObject>3D Object>Terrain菜单项创建地形 在Scene视图中通过鼠标滚轮调整视距,按住鼠标右键进入观察模式,在该模式下用鼠标调整视角,键盘WASD移动 升降地形工具 选中地形工具栏中的第一栏Raise/Lower Terra

创建场景——03风域

学习笔记适合新手,如有错误请指正.?号处也请各位指点下,谢谢. 实现树的摆动,增加风域(Wind Zone) 点击导航菜单栏>GameObject>3D Object>Wind Zone菜单项 创建一个风域 风域的具体参数如下: Mode:风域的模式,Directional方向风域,整个场景的所有树木都会受到风的影响,Spherical球状区域风域,只有球体内包裹的树木会受到风的影响 Radius:在球状区域模式下覆盖的球状区域半径,在方向风域模式下不能设置该参数 Wind Main:风

Unity3D学习笔记之七创建自己的游戏场景

到现在为止我们已经拥有了比较完备的Prefab,已经可以创建宏大的游戏场景,并以第一人称视角在场景中漫游了.这里给大家做个小的示范,建一个小场景大家在创建场景的时候需要自由发挥,做个尽量大的场景出来. 这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>,下载链接附在第二篇学习笔记中. 我们以最初的添加了First Person Controller的PFB_Straight为整个场景的中心点来展开.我们先从Project中Prefabs文件夹拖出来

cocos2d之创建自己的场景类

|   版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 首先创建.h的头文件,然后在将一些图片声音素材加到resource文件夹内,最后在创建.cpp文件:         .h头文件中创建一个类,此类一般继承自Layer,首先有一个静态的创建场景的方法,然后是一个初始化方法,还有一个CREATE_FUNC宏: .cpp中就是对.h中class中定义的方法来进行实现 效果图: 代码: MyGameScene.h: 1 #ifndef _MYGAME_SCENE_H_ 2 #defin

Cocos2Dx 场景的创建

新建的cocos2Dx工程默认的是一个helloworld工程,里面包含了2个类文件,一个是AppDelegate,一个是HelloworldScene类文件(这个类叫HellowWorld,为什么类文件和类名不一样这一点让我觉得挺不爽的.)在AppDelegate内主要进行“导演“的初始化,设置显示信息和窗口大小等等.还有一个主要功能就是初始化和显示第一个场景. auto scene = HelloWorld::createScene();//调用hello world类的方法创建场景 dir

【浅墨Unity3D Shader编程】之一 游戏场景的创建 &amp; 第一个Shader的书写

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] 作为一个系统介绍Unity3D中Shader编写的系列文章的开篇,本文的第一部分系列文章的前言,然后第二部分介绍了这个系列文章中我们会使用的游戏场景创建方式,最后一部分讲解了如何在Un

创建基础场景---基于WebGL的H5 3D游戏引擎BabylonJS

在本教程里, 我们将用Babylon.js创建一个基础的3D场景. 具有两个造型物的基础场景 在你开始之前,请确定你有个支持WebGL的浏览器 (比如:IE11+, 火狐4+, 谷歌浏览器9+, Opera15+, 等.). HTML部分 首先, 创建一个基础的HTML5网页: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=

Three.js入门篇(一)创建一个场景

上一面讲述了向场景中添加物体对象.这一篇准备把每个功能点细细的讲述一遍,一方面是为了加深自己的理解.另一方面希望能够 帮助到有需要的人. 一.在学习WEBGL的时候,你应该先了解要创建一个WebGL程序需要哪些步骤.就跟弄梅菜扣肉一样,需要哪些步骤. 初始化WebGL绘图上下文 初始化着色器程序 建立模型和数据缓存 完成绘制和动画 这是一个面向过程编程.然而three.js不一样,是一个面向对象编程.主要构建三个对象 scene(场景) camera(相机) renderer(渲染器).. 这三