Cocos2d-x游戏实例-《跑跑跑》制作教程(第一篇)——加载地图

简介:

本教程使用Cocos2d-x 2.0.4版本。

第一个版本的《跑跑跑》源码+资源下载地址:

云盘下载: http://yunpan.cn/lk/sV2K9ZKSnIVMC?sid=301

CSDN下载(稍后补上):http://download.csdn.net/detail/musicvs/4769412

 

Cocos2d-x游戏实例-《跑跑跑》制作教程(第一篇)——加载地图

 

本篇要做的事情很简单,就是利用TiledMap创建一张很长的地图,噗,我就不考虑占内存的因素哈,我还不太懂怎么优化一张大地图的加载。

1.      新建我们的项目

我想把它命名为RunRunRun,是的,我们这是要做一个奔跑游戏,最近有些累,尽情跑一回吧~

2.      稍微调整一些参数,我把屏幕定为800 * 500的大小:

不准问我在哪改啊,我才不会告诉你是在main.cpp里的,然后找到下面两句:

1 CCEGLView* eglView = CCEGLView::sharedOpenGLView();
2 eglView->setFrameSize(800, 500);</pre>
3 <span style="font-family: Calibri; font-size: 14px;">setFrameSize(800, 500);
OK~ 3. 我们来创建几个文件夹,以便为我们的代码分类:  哈哈,是的,接下来我要逐渐建立3块很重要的的模块:场景、实体、控制器。4. 先不管其他,我们先来创建场景——跑步的场景。如上图,大家新建一个TollgateScene.cpp以及头文件TollgateScene.h
01 // TollgateScene.h
02  
03 #ifndef __TOLLGATE_SCENE_H__
04 #define __TOLLGATE_SCENE_H__
05  
06 #include "cocos2d.h"
07  
08 using namespace cocos2d;
09  
10 class TollgateScene : public CCLayer {
11 public:
12     CREATE_FUNC(TollgateScene);
13  
14     virtual bool init();
15     static CCScene* scene();
16  
17 };
18  
19 #endif
01 // TollgateScene.cpp
02  
03 #include "TollgateScene.h"
04  
05 CCScene* TollgateScene::scene()
06 {
07     CCScene* mScene = CCScene::create();
08  
09     TollgateScene* mLayer = TollgateScene::create();
10  
11     mScene->addChild(mLayer);
12  
13     return mScene;
14 }
15  
16 bool TollgateScene::init()
17 {
18     CCTMXTiledMap* map = CCTMXTiledMap::create("map/level01.tmx");
19     this->addChild(map);
20     return true;
21 }
代码很简单,我不做过分的解释,主要看看init函数。CCTMXTiledMapcocos2d-xtmxtmx: Tiled Map Editorhttp://www.mapeditor.org/大家下载一下,我们要利用它来创建我们的地图,也就是上面代码里的level01.tmx文件。 5.      Tiled Map Editor创建地图文件打开这个软件,新建一个文件,我们的把地图设长一点,宽120块,高20块,宽高像素都是32 我们需要一些素材(请下载游戏demo源码,里面的resource文件夹有素材):   ground.png图片拖入软件的图块区域:   块的宽高都是32像素,点确定,ok~      现在我们可以开始创建我们的地图了,在图块里选择一个元素,然后就可以在地图区域绘制地图: 下面是我画的(很丑,不要介意~噗):   6.      准备运行项目现在,把我们的level01.tmx以及ground.png文件放到项目资源目录下,我建了一个map目录:Resourcesmap,地图的资源都放这了。然后,还记得我们要怎么加载地图吗?
1 bool TollgateScene::init()
2 {
3     CCTMXTiledMap* map = CCTMXTiledMap::create("map/level01.tmx");
4     this->addChild(map);
5     return true;
6 }
然后把我们默认启动场景设置为TollgateScene
01 bool AppDelegate::applicationDidFinishLaunching()
02 {
03     // initialize director
04     CCDirector *pDirector = CCDirector::sharedDirector();
05     pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
06  
07     CCEGLView::sharedOpenGLView()->setDesignResolutionSize(1024, 640, kResolutionExactFit);
08  
09     // turn on display FPS
10     pDirector->setDisplayStats(true);
11  
12     // set FPS. the default value is 1.0/60 if you don't call this
13     pDirector->setAnimationInterval(1.0 / 60);
14  
15     // create a scene. it's an autorelease object
16     CCScene *pScene = TollgateScene::scene();
17  
18     // run
19     pDirector->runWithScene(pScene);
20     return true;
21 }
  OK,编译运行,我们会看到我们的地图,帅呆了,噗才怪啊~!丑死了~       7. 部分朋友可能会报错   也许有人运行项目时会报错,说找不到png图片,没关系,用文本编辑器打开我们level01.tmx文件,找到下面这段数据:
<tileset firstgid="1" name="ground" tilewidth="32" tileheight="32">   <image source="ground.png" width="420" height="316"/>  </tileset>

看看我们的image source里的ground.png是不是绝对路径,是的话,改成相对路径。




本文转蓬莱仙羽51CTO博客,原文链接: http://blog.51cto.com/dingxiaowei/1366385 ,如需转载请自行联系原作者
 
 
 
 
 
相关文章
|
2月前
|
JavaScript
关于网页游戏官网-部分游戏页面特效实现思路的简述
关于网页游戏官网-部分游戏页面特效实现思路的简述
41 0
关于网页游戏官网-部分游戏页面特效实现思路的简述
|
4月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
79 0
|
4月前
|
索引
塔防游戏开发实战教程(2):创建不同类型的炮塔
塔防游戏开发实战教程(2):创建不同类型的炮塔
26 0
|
图形学 数据安全/隐私保护
还在用Unity开发游戏?那你就out了,试试用Unity做一个答题系统吧
大家都支持Unity是用来做游戏开发,比如说做2D游戏、3D游戏,或者工业虚拟仿真软件的开发。 其他Unity可以做的有很多,比如答题系统。 本篇就介绍答题系统的开发 这个答题系统,可以从文本文档中提取题目和分数,然后绑定到UI上,在答题的过程中,自动判断分数,自动判断正确率。 目的是实现一个可快速导入到项目中使用的小模块。
|
小程序 API Android开发
小程序开发-第三章第四节点击查看大图,保存壁纸-全栈工程师之路-中级篇
小程序开发-第三章第四节点击查看大图,保存壁纸-全栈工程师之路-中级篇
127 0
小程序开发-第三章第四节点击查看大图,保存壁纸-全栈工程师之路-中级篇
|
Java C# vr&ar
手把手带你使用Paint in 3D和Photon撸一个在线涂鸦画板
Paint in 3D用于在游戏内和编辑器里绘制所有物体。所有功能已经过深度优化,在WebGL、移动端、VR 以及更多平台用起来都非常好用! 它支持标准管线,以及 LWRP、HDRP 和 URP。通过使用GPU 加速,你的物体将以难以置信的速度被绘制。代码还经过深度优化来防止GC,和将所有绘制操作一起批次完成。 跟贴图系统不同,它是一个纹理绘制解决方案。这意味着你可以绘制你的物体上百万次,还是无帧率丢失,让你创作难以想象的游戏。
590 0
手把手带你使用Paint in 3D和Photon撸一个在线涂鸦画板