Fast TileMap

概述

在游戏中常常会有丰富的背景元素,如果直接使用大的背景图实现,这会造成资源浪费。TileMap就是为了解决这问题而产生的。Cocos2d-x支持使用Tile地图编辑器创建的TMX格式的地图。

Cocos2d-x为我们提供了TMXTileMap和TMXLayer两个类来处理瓦片地图。通过使用TMXTileMap和TMXLayer,我们可以很方便的加载TMX格式的地图文件,获取地图上的图层、对象、属性等信息。

新发布的3.2版本,对瓦片地图进行了大幅改进,通过自动裁剪不在视图范围内的瓦片来提升性能,并支持渲染更大尺寸的瓦片地图!我们称之为"Fast TileMap",下面我们就来一起研究Fast TileMap。

TileMap VS Fast TileMap

Fast TileMap的不同

在3.2版本,新增了CCFastTMXTiledMap.h/CCFastTMXTiledMap.cpp/CCFastTMXLayer.h/CCFastTMXLayer.cpp文件用于实现快速高效的瓦片地图功能。

在cocos2d::experimental的名字空间下重新实现了TMXTiledMap和TMXLayer。其中对TMXLayer的改动较大。TMXLayer不在继承SpriteBatchNode,改为继承Node。并重新实现TileMap的绘制来提升性能。

  • old
class CC_DLL TMXLayer : public SpriteBatchNode
  • new
class CC_DLL TMXLayer : public Node

新的TMXTiledMap接口和原有的保持一致。我们依然可以像以前那样使用TMXTiledMap创建瓦片地图。

Fast TileMap的用法

    auto map = cocos2d::experimental::TMXTiledMap::create("tilemap.tmx");
    addChild(map, 0, kTagTileMap);

上面代码演示了,使用Fast TileMap加载tilemap.tmx文件创建一幅地图,并加到场景中。

更多API使用方法参考:

性能对比

我们分别使用以前的TileMap和Fast TileMap加载同一个tmx文件创建地图,并在同一设备上进行测试。

测试设备: 

MacBook Pro Retina,13-inch,Late 2012 OS X 10.9.4

  • TileMap

    auto map = TMXTiledMap::create("TileMaps/iso-test-bug787.tmx");
    addChild(map, 0, kTagTileMap);
    map->setScale(0.25f);

    运行结果:

  • Fast TileMap
     auto map = cocos2d::experimental::TMXTiledMap::create("TileMaps/iso-test-bug787.tmx");
    addChild(map, 0, kTagTileMap);
    map->setScale(0.25f);

    运行结果:

    运行结果对比:

  • 两者的GL calls都相同
  • 使用Fast TileMap的GL verts更少
  • 使用Fast TileMap的帧率更高

因为相同的GL calls(渲染次数)下,GL verts(显卡绘制的顶点数)越少,绘制效率越高。FPS(帧率)越高游戏越流畅。所以 使用Fast TileMap渲染地图的性能更优。

时间: 2024-11-01 19:16:28

Fast TileMap的相关文章

Create and Control Windows Services--Not a Slap Shot, but Almost as Fast[等级:高级]

services|window|高级 Not a Slap Shot, but Almost as FastCreating the service using .NET is fairly straightforward. You use the .NET Framework's System.ServiceProcess namespace and four classes within it: ServiceBase, ServiceInstaller, ServiceProcessIns

算法:uva 662 Fast Food (dp)

题意 一条直线马路上有n个饭店,各个坐标为di. 要在n个饭店中选择k个饭店用来建造停车 场.没有建停车场的饭店,只能使用附近最近的一个停车场. 问总距离最少的建造方案,并输出. 思路 先进行预处理,sum[i][j]表示在饭店i-j之间建一个停车场,i-j的所有饭店到停车场 的距离之和最小. 在饭店i-j之间,选择在(i+j)/2点建造是总距离最小的方案 f[i][j],表 示前i个饭店,建造j个停车场的最小总距离 那么, f[i][j] = min{ f[k-1][j] + sum[k][i

UVa 10098 Generating Fast:全排列生成

10098 - Generating Fast Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=1039 Generating permutation has always been an important problem in computer science. In this problem you will have

算法题:UVA 662 Fast Food(dp)

Fast Food The fastfood chain McBurger owns several restaurants along a highway. Recently, they have decided to build several depots along the highway, each one located at a restaurent and supplying several of the restaurants with the needed ingredien

FAST路由器复位的常见问题

  一.检查电脑的本地连接是否已连接上,一般断开连接,电脑右下会有提示. 二.使用复位键(reset)复位的,需要按住复位键10秒钟左右,所有指示灯同时亮几下才会复位成功. 三. 检查FAST路由器的初始网段(192.168.0.1或192.168.1.1),手动指定电脑的IP和FAST路由器在同一个网段内或者修改为自动获取IP地址,前提是已经打开FAST路由器的DHCP指派. 综上所述,FAST路由器复位后登陆不了的问题想必大家都了解了,如果再登陆不上,那你就要检查下是否是FAST路由器坏了导

Fast迅捷无线路由器设置图文教程

迅捷无线路由器设置(详细设置) 一.设备的物理连接 有线连接的电脑连接路由器的LAN口,外网过来的网线连接路由器的WAN口,无线连接的通过路由器设置后通过无线功能连接到路由器.(如下图) 二.建立正确的网络设置 2.1设置电脑的IP地址.右键点击"网上邻居"--"属性"(如下图) "本地连接"--"属性"(如下图) 如下图点击TCP/IP后点击"属性" 如下图所示,将IP地址设置为"自动获取IP地

fast无线路由器如何设置

  fast无线路由器还有超强破解网络封杀能力,针对全国各地各种封杀路由现象(如网络尖兵.星空极速.信风等等)最快提供破封杀升级软件,网络资源共享,不受运营商封杀限制. 在浏览器中输入192.168.1.1,登陆路由器,在左侧无线参数选项中可以选择加密的.需要用出厂的提供的路由器原始账号.密码(一般都是:admin);进入路由器页面,输入电信部门提供的宽带账户.密码, 在进行IP设置和无线密码设置. 在网络参数里设置连接类型为PPPoE,输入上账号和密码,连接模式一般为自动连接,点保存. 在DH

安装FAST Cache是否会对存储系统造成影响

故障现象: 安装FAST Cache是否会对存储系统造成影响? 解决方案: 会对性能产生影响.安装FAST Cache时,系统会临时禁用Read/Write Cache用以调整空间分配,系统需要额外的DRAM空间保存FAST Cache的Memory Map副本.所以,尽可能在维护时刻安装FAST Cache.

FAST路由器忘记账号和密码的复位方法介绍

  由于存在许多不可确定的因素,网络管理员偶尔会忘记FAST路由器的用户名和密码,这时可以将FAST路由器复位,恢复直到出厂状态解决此问题. 一.54M系列无线路由器及SOHO级有线宽带路由器传统复位方法 (1)具有SYS灯的路由器复位方法 路由器的前/后面板上有一个小孔,旁有单词:Reset;关闭路由器的电源,找一如笔尖类的尖物按住Reset键;重新插上电源,当观察到SYS指示灯闪烁后,松开RESET按钮,路由器将恢复到出厂状态. (2)具有M1.M2灯的路由器复位方法 路由器的前/后面板上有