【问题标题】:Using Tile Maps with cocos2d - how do I handle a large amount of images?在 cocos2d 中使用 Tile Maps - 如何处理大量图像?
【发布时间】:2014-12-07 16:37:31
【问题描述】:

我正在构建一个游戏,用户(玩家)可以在其中建立自己的城镇。 在那里他们可以建造房屋,为房屋添加家具等。基本上类似于 The Sims

我正在使用Tiled Map Editor 为每个城镇创建一个基础。 在那里我定义了以下层

  • 地面
  • 地板
  • 墙壁和家具(基本上都是)

所有这些层最初都是空的。由用户自行填写。

我正在使用 cocos2d v2 及其CCTMXTiledMap 在我的项目中渲染这个瓦片地图。

我意识到地图中定义的图层CCTMXLayers 仅支持来自一个图块集的图像(#)

这导致了在深入研究一些严肃的游戏开发之前,我需要回答以下问题。

问题 1。 如果我所有的房子都有相同的墙壁,这个游戏就不好玩了。我真的需要在“墙壁和家具”-tileset 中使用许多不同类型的墙壁。 一个tileset可以有多大?请注意,由于(#),我不仅需要存储不同的墙壁纹理,还需要存储代表家具的纹理。

问题 2。 在CCTMXTiledMap 中更改图块的方式是(据我所知..?)对该特定层使用setGID 方法。 回到不同墙壁的例子。假设玩家可以从滚动的 HUD 层菜单中选择不同的墙壁。当玩家选择某面墙时 - 我如何知道该特定墙有哪个GID(在运行时)?

P.S 我对 cocos2d 和 Tiled 都很陌生,所以如果我在这里采取了错误的方法,请告诉我在这样的游戏中我应该采取什么方法。我也一直在研究 Kobold Touch - 也许它更适合我的需求?

【问题讨论】:

    标签: ios cocos2d-iphone kobold2d tiled


    【解决方案1】:

    1) 您的图块集需要保持在目标设备的纹理大小限制内。 1024x1024 像素基本上总是安全的,但最近的设备支持高达 4096x4096。见http://www.uchidacoonga.com/2012/04/quick-tip-max-texture-size/

    2) 您可以通过获取该图块在其图块集中的本地索引并添加图块集.firstGid 属性的值来获得 GID。

    我会鼓励你研究 Kobold Kit 或者升级到更新版本的 cocos2d(如果他们摆脱了每层一个图块集的限制)。出于性能原因,每层一个瓦片集是可以理解的限制,但如果需要,解决它也很烦人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      相关资源
      最近更新 更多