【问题标题】:Cocos2d-x TMX maps sharing Texture image file with game sprites?Cocos2d-x TMX 地图与游戏精灵共享纹理图像文件?
【发布时间】:2013-07-30 06:31:04
【问题描述】:

我正在使用 cocos2d-x 2.1.4 并且想使用相同的图像文件,例如

的 spritesheet.png
  1. 使用 Tiled Map Editor 构建的 tmx 地图上的图块;
  2. 游戏中的精灵,我通常使用 TexturePacker 制作精灵表。

组合的原因是为了减少绘制调用的次数,因为有足够的纹理空间供精灵和图块在一张图像上共享。如果我将 TexturePacker 与 Tiled 一起使用,我认为每次 TexturePacker 重新排列平铺图像时都必须重新分配平铺位置,所以这不是一个好方法。

我知道我可以从 CCSpriteframe 中获取 CCTexture2D*,我想尝试将其插入 CCTextureCache,以便 CCTMXLayer 可以获取纹理(实际上来自 spritesheet)。但是,没有办法这样做。

在 cocos2d-x 中为瓦片和精灵处理组合精灵表的常用技术是什么?

【问题讨论】:

    标签: c++ cocos2d-x sprite-sheet texturepacker cctexturecache


    【解决方案1】:

    将 TP 中的排序算法更改为名称,然后在您的平铺精灵图像前加上 _ 或其他字符,以确保它们在精灵表中排在首位。您可能需要创建虚拟图块来为未来可能的图块保留空间,以避免当您在其间添加更多图块时重新排列图块精灵的风险。

    不管怎样,一个额外的绘图调用不会产生任何影响。

    【讨论】:

    • 感谢按名称排序的提示。这样就解决了。关于draw call,我想我把这个问题和别的东西混淆了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多