码迷,mamicode.com
首页 > 其他好文 > 详细

【转】cocos2d-x 3.2 Fast TileMap

时间:2014-09-24 20:44:57      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:style   http   os   使用   ar   strong   for   文件   sp   

概述

在游戏中常常会有丰富的背景元素,如果直接使用大的背景图实现,这会造成资源浪费。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使用方法参考:

  • COCOS2DX_ROOT/tests/cpp-tests/Classes/TileMapTest/TileMapTest2.cpp

  • TileMap

性能对比

我们分别使用以前的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);
    

    运行结果:

    bubuko.com,布布扣

  • Fast TileMap

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

    运行结果:

    bubuko.com,布布扣

    运行结果对比:

  • 两者的GL calls都相同

  • 使用Fast TileMap的GL verts更少
  • 使用Fast TileMap的帧率更高

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

【转】cocos2d-x 3.2 Fast TileMap

标签:style   http   os   使用   ar   strong   for   文件   sp   

原文地址:http://www.cnblogs.com/Androider123/p/3991225.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!