cocod2d-x 之 CCTMXTiledMap & CCTMXLayer】的更多相关文章

cocos2dx框架自带的地图CCTMXTiledMap,继承自CCNode.CCTMXTiledMap的坐标系的原点位于左上角,以一个瓦片为单位,换句话说,左上角第一块瓦片的坐标为(0,0),而紧挨着它的右边的瓦片坐标就是(1,0).TileMap中的每一个瓦片拥有一个唯一的编号GID,用于在地图中查找某个瓦片.Cocos2d-x提供了一系列方法,可以从瓦片地图坐标获取对应瓦片的GID,同时还可以利用这些方法来判断某个坐标下是否存在瓦片. 属性: CCSize  m_tMapSize,地图大小…
继承关系 CCTMXTiledMap -> CCNode 它由CCNode派生,我们已经知道CCNode是cocos2dx的舞台对象的公共父类,所以CCTMXTiledMap也是个舞台对象 成员 static CCTMXTiledMap* create(const char *tmxFile); 通过一个文件,创建一个地图对象,这个文件是由工具编辑的地图文件 static CCTMXTiledMap* createWithXML(const char* tmxString, const char…
继承关系 CCTMXLayer -> CCSpriteBatchNode CCTMXLayer是在瓦片地图中,抽象一个层的类,它继承自CCSpriteBatchNode,也就是说它抽象了一批相同图片的精灵,在瓦片地图中,用层来抽象她们. 成员函数 CCSprite* tileAt(const CCPoint& tileCoordinate); 获取该坐标的精灵,这里的坐标是网格坐标 unsigned int  tileGIDAt(const CCPoint& tileCoordina…
由于一张大的世界地图或背景图片往往可以由屈指可数的几种地形来表示,每种地形对应于一张小的图片,我们称这些小的地形图片为瓦片.把这些瓦片拼接在一起,组合成一个完整的地图,这就是瓦片地图集的基本原理. Cocos2D-x中支持两种瓦片地图集格式:一种是*.tag文件格式,一种是*.tmx文件格式. ·*.tag文件格式一般采用photoshop生成,在Cocos2D-x中为了兼容性仍保留,目前已经不推荐使用这种方式拼图.虽然如此,我们还是简单了解一下.Cocos2D-x通过类CCTileMapAtl…
格子地图的优点: a.节省内存,我们知道对于一款游戏来说,如果以图片来作为地图的话,对于神庙逃亡,魂斗罗这样的场景很多,地图很长的游戏显然不现实,因为图片很占内存,但是这些游戏的地图有一个特点就是:重复的部分很多,比如魂斗罗游戏的每一关的地图里边,无外乎,陆地,海洋,天空,草地等等这些元素,设想我们把地图分成一个一个的小格子,那么这么一张大的地图则只需要五种格子即可构成:陆地格子,海洋格子,天空格子,草地格子,其他格子等,而需要的地方只需要把这几种格子组合即可,这样在内存中只需要存储这五种格子的…
1.字符串 与 数据结构互转 CCPoint: CCPointFromString(); {x, y} CCSize: CCSizeFromString(); {w, h} CCRect: CCSizeFromString(); {x, y, w, h} 2.plist文件使用,配置文件使用 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//D…
转自:http://blog.csdn.net/we000636/article/details/8263503 接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 JNI:允许Java代码与其它语言写的代码进行交互 cocos2d-x好像对tmx中使用bmp图片不支持 BombMan.win32.exe 中的 0x10007f50 (libcocos2d.dll) 处最可能的异常: 0xC0000005: 写入位置 0x0000000c 时发生访问冲突 “BombMan.…
本文来自http://blog.csdn.net/runaying ,引用必须注明出处! COcos2d-X 中文API 温馨提醒:使用二维码扫描软件,就可以在手机上访问我的博客啦!另外大家可以访问另一个博客 http://blog.csdn.net/u012972188 写在前面:千呼万唤始出来,我想大家一定对这篇文章期待已久了吧!今天小编,就把前面发表的文档整理了一下,方便大家在使用的时候快速索引,大家如果觉得还不错就赞一下!或许你觉得鼠标滚轮没滚动几下就到结尾了,可这些文档都是小编辛辛苦苦…
cocos2d-x中的瓦片地图是通过tiledMap软件制作的,存档格式是.tmx格式.此软件的使用步骤简单总结如下: (1)制作瓦片地图 1 打开软件,软件界面如下图. 2. 新建地图(文件->新文件) 3.增加新图块(地图->新图块) 4. 制作地图.在图层区域,单击右键可以新建图层和对象,上面的工具栏中的工具,制作地图. 5 导出,记住格式一定是tmx格式 说明 有时候,在使用地图的时候,可能会报找不到资源的错误,可以使用xcode打开地图文件,将资源路径修改如图所示形式. 在地图完成后…
背景 在上一篇博客中,我们提到CMGameScene,但是CMGameScene只是个框架,实际担任游戏逻辑的是CMGameMap类,这个博文就来了解下CMGameMap 头文件 class CMGameMap : public cocos2d::CCTMXTiledMap ,public CMReceiver { protected: enum { enTagMario = 998, //通过这个Tag查找Mario }; protected: CCArray *m_pArrayItems;…
上篇文章实现了坦克与地图碰撞的检测, 这篇我们继续完成子弹和地图的碰撞检测. 1.先设计一个子弹类Bullet,如下所示: class Bullet : public CCSprite { public: Bullet(); ~Bullet(); static Bullet* createBulletWithTank(Tank* tank); void initBulletWithTank(Tank* tank); bool fire(); virtual void update(float d…
Tiled地图编辑器支持普通视角地图和45度角地图, 它生成的地图数据文件cocos2d-x完美的支持,Tiled地图编辑器是一个以普通使用为目标地图编辑器,它使用简单而且能够轻松地在不同的游戏引擎中使用,其特性有: 1.使用基于XML编码形的地图数据文件使用能够在不同游戏引擎中通用 2.支持普通.45度两种视角 3.对象的放置位置能够精确到像素 4.支持图素.层次和对象等通用概念 5.自己主动又一次加载图素集 6.能够重置图素的大不和偏移 7.支持图章刷和填充等高效工具 8.支持以通用的格式输…
本文转自:http://blog.csdn.net/w18767104183/article/category/1757765 前面一章讲了cocos2dx 中使用A星算法 这章中讲 A*结合tiledmap 先看下效果图 图有点丑,忍受下 绿色的块 表示人物的行走的路线(A*算法的结果) 红色部分 表示A*算法搜寻过的点(越少,速度越快) 黑色的部分(其实是无色块,因为背景是黑色的) 表示障碍物 这张图是用tiledmap做出来的, 看看里面的内容 可以看到 我把不能通过的地区的图块给删了 t…
1.现在,.h声明private: cocos2d::CCSprite* ninja; cocos2d::CCTMXTiledMap*  tileMap; 然后.cpp中增加tileMap = CCTMXTiledMap::create("MyTileMap.tmx"); CCTMXLayer* backLayer = tileMap->layerNamed("Tile Layer 1"); CCAssert(backLayer, "Can not…
接上一章<Cocos2d-x源代码解析(1)--地图模块(2)> 通过前面两章的分析,我们能够知道cocos将tmx的信息结构化到 CCTMXMapInfo.CCTMXTilesetInfo,CCTMXLayerInfo之中. 当中CCTMXMapInfo存储地图的信息包扩下面几块信息: - Map orientation (hexagonal, isometric or orthogonal) - Tile size - Map size - Layers (an array of TMXL…
弱联网开发技术: libcurl 添加lib文件:libcurl_imp.lib  pthreadVCE2.lib 添加头文件:#include"curl/curl.h" curl_global_init(CURL_GLOBAL_ALL);//初始化 curl_global_cleanup();//结束执行 简单接口:easy interface  单线程会引起阻塞 //设定请求的网络地址 //向服务器读数据 CURL *easy_handle=curl_easy_init(); cu…
<疯狂iOS讲义(下)——iPhone/iPad高级应用与手游开发(含CD光盘1张)> 基本信息 作者: 李刚    肖文吉 出版社:电子工业出版社 ISBN:9787121224379 上架时间:2014-2-21 出版日期:2014 年3月 开本:16开 页码:628 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > iPhone   更多关于>>> <疯狂iOS讲义(下)——iPhone/iPad高级应用与手游开发> 编…
cocos通过加载tiled 生成的tmx文件来生成游戏地图.本文主要分析cocos加载地图模块的源代码.   如图所看到的,地图加载模块由以上几个类组成. 对外的入口是类CCTMXTiledMap,在使用该类时.程序猿不须要知道其底层的其它类便可解析tmx文件生成地图. 那么.我们首先分析类CCTMXTiledMap是怎样调用其它类进行解析,该类的声明例如以下: class CC_DLL CCTMXTiledMap :public CCNode { /** the map's size pro…
目前项目,使用了Lua脚本,至于使用Lua的好处不再赘述了.于是对Tolua做了一些小小的学习,总结一下吧. 主要说一下如何在Lua中调用C++方法. Lua调用C++的桥梁,是tolua.tolua是什么,http://blog.csdn.net/killwd/article/details/1423923 这篇文章介绍的很详细. 我们需要手动做的,其实便是编写中间类,这个类被tolua直接使用,最终的目的是实现lua中对象方法和C++中对象方法的对应. LuaCocos2d.cpp 完成了所…
 本文实践自 Allen Tan 的文章<How To Make A Side-Scrolling Beat 'Em Up Game Like Scott Pilgrim with Cocos2D – Part 1>,文中使用Cocos2D,我在这里使用Cocos2D-x 2.0.4进行学习和移植. 在这篇文章.将会学习到怎样制作一个简单的横版格斗过关游戏.在这其中,学习怎样跟踪动画状态.碰撞盒.加入方向键.加入简单敌人AI和很多其他其他的. 过程例如以下: 1.新建Cocos2d-win…
Cocos2d-x-html5之HelloWorld深入分析与调试 另:本章所用Cocos2d-x版本为: Cocos2d-html5-v2.1.1 http://cn.cocos2d-x.org/download html5的时代正在来临,其可以方便的运行在多平台上并调用OPENGL 进行图形渲染,大量使用html5开发的2D和3D游戏正在涌现,Cocos2d-x也顺应形势推出了相应的版本,今天我们来学习一下Cocos2d-x在Html5上怎么运行和开发及调试. 打开HelloHTML5Wor…
在都是scale为1的情况下,效果图如下: , 绿色的是Screen,它的大小和坐标不变,可以理解为CCScene,下面两个就是用CCLayer的地图,有2个Layer,深颜色的就是和Scrren一样大小的Layer,浅颜色的是一张大地图,或者一张大图片,也可以是一个Layer,里面有个CCTMXTiledMap,都可以,它们的特点是尺寸大于Screen,坐标在Layer中是0,0,所以无论深颜色Layer怎么变化,它们的坐标始终都是0,只是大小可能会改变.代码为: CCScene *scene…
在Cocos2D-x里面创建Tile Map地图是需要用到.tmx的地图文件的,那么创建Tile Map地图文件,我们可以通过地图编辑器来创建,地图编辑器可以在网站:http://www.mapeditor.org 上进行下载,然后通过地图编辑器就可以导入.tmx的地图文件.那么为什么我们不直接用图片作为地图呢,而是使用.tmx文件来创建地图.那么有一个很重要的原因就是因为使用Tile Map地图无论你的地图多大,内存占用只是每个不同Tile的总和,所以使用Tile Map是非常省内存的一种做法…
cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce.功能分别是 每隔几秒调用自定义函数.调用系统默认的update()函数.只调用一次自定义函数 1.scheduleUpdate 加入当前节点后,程序会每帧都会自动执行一次默认的Update函数.(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schedule) 看例子,走起. 首先在HelloWord类的头文件中声明Update函数: void Update(float dt…
转的 在这个分为上下两部分的教程中,我们将介绍如何使用Cocos2D-X和地图编辑器做一款基于地图块的游戏.在这个简单的地图块游戏里,一个精灵将在沙漠里搜寻它可口的西瓜! 在教程的第一部分,我们将介绍如何创建一个地图,如何将地图添加到游戏中,如何滚动地图以跟着玩家跑,以及如何使用对象层. 在本教程的第二部分,我们将介绍如何在地图上制作碰撞区,如何使用地图块的属性,如何制作宝藏并动态的修改地图,以及如何确保你的忍者不暴饮暴食. 如果你还没有学习“如何用cocos2d-x来开发简单的Uphone游戏…
[eoeAndroid 社区]特意为大家汇总了cocos2d-x知识贴,分量十足,纯正干或.从基础教程到游戏应用的开发,我们不让知识流失,我们要做知识的搬运工还有加工 师.希望大家能够一起的学习,和大家一起分享你们的知识 ,探讨出一些问题及解决方法,大家共同进步,相互帮助. 此贴我们会随时的更新,大家一定要随时的关注哦,我们也同样期望各位网友们能把自己手中的资源分享出来,让爱学习的朋友们更上一层楼. 大家要努力学习啊,支持自己.支持社区....各位亲加油喽!! cocos2d-x基础: coco…
做游戏,场景是一个很重要的部分,如果缺少这一步,很难做出好的游戏,对于cocos2dx来说,有很多2D的地图编辑器可以用,效果都还可以,其中Tiled是支持的比较好的,它支持Tiled编辑出来的几种模式,比如正常.45度地图等. 如果要做小型的手机游戏,使用正常模式就足够了,cocosdx支持的很好,如果要具有3D感,那么可以使用45度正常地图.但是如果要做大场景,比如底图4000*4000像素级别的,那么Tiled可以使用交错(Staggered)模式,但是cocos2dx封装的并不支持,需要…
#ifndef __CCCONFIG_H__ #define __CCCONFIG_H__ #include "platform/CCPlatformConfig.h" /** @file cocos2d (cc) configuration file */ /** @def CC_ENABLE_STACKABLE_ACTIONS    //STACKABLE可叠起堆放的 If enabled, actions that alter(改变) the position property…
有段时间没有学习cocos2dx了,作为新人,自己觉得还是要稳扎稳打,一点点的去积累,梳理好每一个知识点,这样对自己的成长能够有一个更清晰的认识,以便做更好的提高. 从2013年8月开始接触cocos2dx,一直学习到12月份,之后去学习了unity3d引擎的基础部分,确实不错,很轻大.虽然说3d会是未来的主流趋势,但目前2d仍然是主流,而且自己的2d部分基础也不够硬,所以从今天开始,准备巩固一下自己的2d知识,并跟随公司项目做一些深化.首先从基础部分说起,先来概括的介绍一下cocos2d-x游…
读取.tmx地图 m_GameMap = CCTMXTiledMap::create("map1.tmx"); this->addChild(m_GameMap,1); 读取对象数组 bool bFlag = false; //获取对象层 TMXObjectGroup *group = getGameMap()->objectGroupNamed("coll"); //通过对象名获取该对象层对象 auto player = group->getOb…