Совместное использование карт Cocos2d-x TMX Текстурный файл изображения со игровыми спрайтами?

Я использую cocos2d-x 2.1.4 и хотел бы использовать тот же файл изображения, например, spritesheet.png для

  1. плитки на карте tmx, построенные с использованием Tiled Map Editor, а также;
  2. внутриигровые спрайты, которые я обычно делаю в виде спрайта с использованием TexturePacker.

Причиной объединения является уменьшение количества вызовов отрисовки, поскольку имеется достаточно текстурного пространства для всех спрайтов и плиток, которые могут быть совместно использованы на одном изображении. Если бы я использовал TexturePacker с Tiled, я думаю, что мне пришлось бы переназначать расположение плиток каждый раз, когда TexturePacker переставляет изображения плиток, так что это не очень хороший подход.

Я знаю, что могу получить CCTexture2D* из CCSpriteframe, который я хотел попробовать вставить в CCTextureCache, чтобы CCTMXLayer мог подобрать текстуру (которая на самом деле из таблицы спрайтов). Тем не менее, нет никакого способа сделать это.

Какова общая методика работы с комбинированной таблицей спрайтов для тайлов и спрайтов в cocos2d-x?

1 ответ

Решение

Измените алгоритм сортировки в TP на name, затем добавьте к вашим изображениям спрайта плитки символ _ или какой-либо другой символ, чтобы убедиться, что они находятся в списке спрайтов первыми. Возможно, вы захотите создать фиктивные плитки, чтобы зарезервировать пространство для потенциальных будущих плиток, чтобы избежать риска перестановки спрайтов плиток, когда вы добавите еще несколько плиток между ними.

Независимо от этого, один дополнительный колл-розыгрыш ничего не изменит.

Другие вопросы по тегам