请看图:
图中的红色打圈部分(2 x image),是在哪里添加进来的呢,我一直没找到,求解答。
多屏幕化
楼主 仔细研究
bool AppDelegate::applicationDidFinishLaunching()
里面的函数!
这个函数里没有特殊的东西呀。
图片上自己有的,分辨率的原因加载的是hd目录下的图片,你点进去看看就知道了。
牛叉,我怎么就没想过这种原因呢
你好,楼主是从事手机游戏行业的吗?
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
1
class CC_DLL TMXLayer : public SpriteBatchNode
new
1
class CC_DLL TMXLayer : public Node
新的TMXTiledMap接口和原有的保持一致。我们依然可以像以前那样使用TMXTiledMap创建瓦片地图。
Fast TileMap的用法
1
2
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
1
2
3
auto map = TMXTiledMap::create(“TileMaps/iso-test-bug787.tmx”);
addChild(map, 0, kTagTileMap);
map->setScale(0.25f);
运行结果:
Fast TileMap
1
2
3
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渲染地图的性能更优。
打算从事游戏开发!What can I do for you?
我刚学有不懂的地方所以向你请教,开发一般的单机游戏需要多久时间啊?
这种问题太难回答,估计没人能给你准确答案。
个人水平不一样,游戏难度也不同,而且你确定美术自己也能搞定?
美术方面能够搞定,你有qq吗? 在qq上说好吗? 我叫 符致运 我qq是 847087405
新人而已,很多不懂,不一定帮得上忙!