И можно ли в него импортировать файлы формата *tmx (редактировать карту тайлов в сторонней программе и потом вставить через Cad Editor в игру)?
Хотя spiiin
писал:
Обратный импорт карты из Tiled в редактор CadEditor невозможен, так как Tiled не поддерживает описание задание каких-либо огранений карты, необходимых для сохранения карт в ROM-файлы.
Карту тайлов можно
импортировать из TMX, по крайней мере в некоторых играх. По-хорошему нужно писать внутренний код, но для простоты и для примера я написал как скрипт.
ИнструкцияСкопировать Script-ImportTMX.cs в CadEditor\Scripts.
1. Сначала экспорт. Export > Export TMX, выбрать Layout с (1x1) на конце (уровни из нескольких экранов не поддерживаются), сохранить как CadLevel.tmx в папке с конфигом (например, CadEditor\settings_nes\jungle_book).
2. Редактировать CadLevel.tmx в Tiled.
3. Выбрать экран (Screen No), который нужно импортировать.
4. Нажать Run Script (иконка <> в панели инструментов), выбрать Script-ImportTMX.cs, нажать Run.
Из ограничений, на уровне (layout) должен быть только один экран как в [NES] Jungle Book, не подойдёт [NES] Duck Tales 2. Я не сделал поддержку нескольких экранов из-за чуть большей сложности, но вроде ничто не мешает добавить поддержку. Набор тайлов никак не учитывается при импорте.
Путь до файла .tmx можно отредактировать, строчку:
string pathTMX = Path.Combine(ConfigScript.ConfigDirectory, "CadLevel.tmx");
заменить на такого рода:
string pathTMX = @"C:\Folder\1.tmx"; // Абсолютный путь
string pathTMX = @"1.tmx"; // Относительно CadEditor. Тоже самое @".\1.tmx"
--------
Обновил скрипт (v1.1), теперь
поддержка нескольких экранов на одном уровне, код в основном повторяется из ExportTMX.cs. Я не разобрался в разнице между group, layout, level, в коде разные структуры и данные с такими именами, в Duck Tales 2 количество group меньше на 1, чем layout/level, где есть ещё какой-то скрытый как уровень Bermuda, но я вычисляю номер именно group, который выбирается на главном экране и получаю нужный layout. Ещё как и экспорт, используется только нулевой слой, не знаю что на других.
Теперь заменяется весь уровень (Group), так что можно выбирать любой Screen No в пределах этого Group. Если выбрать Group, то в Screen No будет 1-й из этой Group, поэтому нужно выбирать между 1-м из Group и меньше, чем номер следующего Group. Проверял только на Duck Tales 2.
--------
Версия 1.2. Добавил GUI - диалог выбора TMX. По умолчанию открывается в папке с конфигом, это можно изменить в скрипте для удобства, заменить строчку:
string defaultDir = Path.GetFullPath(ConfigScript.ConfigDirectory); // Normalization
на такого рода
string defaultDir = @"D:\";
--------
Добавил скрипт на github:
https://gist.github.com/infval/d3403dad72b7caaba001b98ee3c8f056.