[Cocos2D-x For WP8]Tile Map创建地图
在Cocos2D-x里面创建Tile Map地图是需要用到.tmx的地图文件的,那么创建Tile Map地图文件,我们可以通过地图编辑器来创建,地图编辑器可以在网站:http://www.mapeditor.org 上进行下载,然后通过地图编辑器就可以导入.tmx的地图文件。那么为什么我们不直接用图片作为地图呢,而是使用.tmx文件来创建地图。那么有一个很重要的原因就是因为使用Tile Map地图无论你的地图多大,内存占用只是每个不同Tile的总和,所以使用Tile Map是非常省内存的一种做法。当然了Tile Map地图的功能可以实现的效果要比单纯的图片要更加丰富,比如Tile Map是可以对地图进行分层等。
那么下面我们主要是讲怎么在游戏里面去使用地图文件。
1、在VS2012上面添加地图文件,这个和添加其他的图片资源文件的操作一样,复制到Asset文件夹,然后添加到项目里面,那么在这里要注意的一点是,把.tmx添加到项目的时候,它的content属性是false的,这时候需要我们手工把它改成true,否则地图会无法显示出来,如下图所示:

2、使用.tmx文件创建地图,然后就可以往地图上添加精灵了,操作精灵的运动,和把精灵在地图的那个一个层上面。
//创建地图
CCTMXTiledMap *map = CCTMXTiledMap::create("iso-test-zorder.tmx");
//在地图上添加精灵
map->addChild(cat, map->getChildren()->count() );
//更新精灵位于那个地图的层上
map->reorderChild(cat, newZ);
示例代码:
TestLayer::TestLayer()
{
//创建一个CCTMXTiledMap
CCTMXTiledMap *map = CCTMXTiledMap::create("iso-test-zorder.tmx");
addChild(map, , );
//获取地图的大小
CCSize s = map->getContentSize();
map->setPosition(ccp(,));
//在地图上添加精灵
cat = CCSprite::create("cat.png");
map->addChild(cat, map->getChildren()->count() );
//如果tile map中有多个层,把这些层加入其他对象中时一定要先retain
cat->retain();
int mapWidth = map->getMapSize().width * map->getTileSize().width;
cat->setPositionInPixels(ccp( mapWidth/,));
cat->setAnchorPoint(ccp(0.5f,)); //创建精灵运动的动画
CCActionInterval* move = CCMoveBy::create(, ccpMult(ccp(,), /CC_CONTENT_SCALE_FACTOR()));
CCActionInterval* back = move->reverse();
CCFiniteTimeAction* seq = CCSequence::create(move, back,NULL);
cat->runAction( CCRepeatForever::create((CCActionInterval*) seq) ); schedule( schedule_selector(TestLayer::repositionSprite) );
} void TestLayer::repositionSprite(ccTime dt)
{
CCPoint p = cat->getPositionInPixels();
CCNode *map = getChildByTag(); // there are only 4 layers. (grass and 3 trees layers)
// if tamara < 48, z=4
// if tamara < 96, z=3
// if tamara < 144,z=2 int newZ = - (p.y / );
newZ = max(newZ,);
//更新层次关系,底层会重新排序
map->reorderChild(cat, newZ);
}
运行的效果:

[Cocos2D-x For WP8]Tile Map创建地图的更多相关文章
- HTML5结合百度地图API创建地图应用
具体的百度地图API的使用方法查看百度地图API里的DEMO <style> #div1{ width:400px; height:400px; border:1px #000 solid ...
- js调用百度地图API创建地图
技术交流群:233513714 <html xmlns="http://www.w3.org/1999/xhtml"><head runat="serv ...
- js调用百度地图API创建地图,搜索位置
实现代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <met ...
- 【百度地图API】如何快速创建带有标注的地图?——快速创建地图工具+如何标注商家
原文:[百度地图API]如何快速创建带有标注的地图?--快速创建地图工具+如何标注商家 摘要: 如果你不会程序,如果你不想写代码. 如果你想拥有一张自己的地图,如果你想在该地图上标注出你商店的位置. ...
- 【百度地图API】建立全国银行位置查询系统(一)——如何创建地图
原文:[百度地图API]建立全国银行位置查询系统(一)--如何创建地图 <摘要>你将在第一章中学会以下知识: 如何创建一个网页文件 怎样利用百度地图API建立一张2D地图,以及3D地图 如 ...
- 在slam_gmapping中使用Log数据创建地图
本文介绍使用机器人记录的tf变换和激光扫描数据来建立2D地图.并在ROS的图形化模拟环境rviz中通过重新回放记录的数据作为机器人真实传感器采集的输入,来观测地图动态创建过程. 1.ROS gmapp ...
- 使用Leaflet创建地图模块
背景 最近需要为某单位开发地图展示系统,因此开始涉略和使用Leaflet这个轻量级地图库. 创建基础地图需要以下几步 引入相关js和css文件,创建基础地图 <div id="map& ...
- 在 SharePoint 2013 中针对地理位置字段创建地图视图
在 SharePoint 2013 中针对地理位置字段创建地图视图 了解如何通过在 SharePoint 2013 列表中使用地图视图来显示位置信息.您可以通过 SharePoint 用户界面 (UI ...
- cocos2dx - 创建地图及玩家(伪)
接上一节内容:cocos2dx - 环境配置,项目创建 本节主要描述cocos中精灵的创建及点击事件的使用 打开创建好的test项目,看到下图的目录结构,真正的游戏逻辑路径在src下. AppDele ...
随机推荐
- 构造方法 static 块 {}块 执行顺序
package com.test.innerclass; public class HelloB extends HelloA { public HelloB() { System.out.print ...
- CodeIgniter类的使用
Email 类 在配置文件中设置 Email 参数 如果您不想使用使用上述方法设定参数,您可以把它们放入一个配置文件.创建一个新文件称为email.php ,添加$config数组在该文件中.然后将该 ...
- PHP json_encode中文乱码解决方法
相信很多人在使用Ajax与后台php页面进行交互的时候都碰到过中文乱码的问题.JSON作为一种轻量级的数据交换格式,备受亲睐,但是用PHP作为后台交互,容易出现中文乱码的问题.JSON和js一样,对于 ...
- Parallel.js初探
今天闲着看了一下Parallel.js.这个库暂时貌似还没有什么中文的介绍(可能暂时用的人都不多吧).所以就只能上github找它得源码和介绍看看了.貌似它的代码也不多,以后可以深入研究一下. 先简单 ...
- linux应用程序地址布局,王明学learn
linux应用程序地址布局 在学习Linux应用程序开发时,经常会遇到如下概念:代码段.数据段.BSS段(Block Started by Symbol,又名:未初始化数据段).堆(heap)和栈(s ...
- Java Socket编程(转)
Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首 ...
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序(转)
本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的javah命令,第二种为整合javah到eclipse里面.推荐第二种方式,方便快捷,随时修改随时生成 0:前提和条件: 1:u ...
- POJ 1987 Distance Statistics 树分治
Distance Statistics Description Frustrated at the number of distance queries required to find a ...
- OD附加功能分析
OD版本:OllyICE v1.10 在从文件菜单选择附加后,OD会在注册一个窗口类后,先创建一个0x138大小的进程表; 再是CreateWindowExA 创建窗口; 00478013 l ...
- MSComm32控件注册方法
两种方法去解决,一种方法是当我们安装VC++6.0/VB6.0时,如果选择了ACtiveX控件项(自定义安装),MSComm控件就会自动安装在计算机上了,并在系统文件夹下多了3个文件:Mscomm.s ...