Первый в своём роде редактор игры King's Valley, версия игры для БК0010 (01). С помощью данного редакторы Вы сможете отредактировать уже имеющиеся лабиринты или создать свои собственные. Отзывы и предложения приветствуются, проект находится в стадии разработки, все Ваши замечания будут учитываться в будущих версиях редактора.
Что нового:
- Внешний вид элементов лабиринта (стены, мумии, мечи и т.п.) представляют собой картинки из оригинальной игры.
- Всё строительство пирамид происходит на одном экране.
- Убран пункт "сегменты", вместо этого, если выбрать любой элемент на панели инструментов и вывести указатель на пирамиду, граница текущего сегмента будет выделена красным цветом.
- Редактировать стены можно непосредственно в пирамиде.
- Добавлен отдельный режим редактирования только стен, при котором все остальные элементы прячутся.
- Слева от основного экрана пирамиды расположены 4 окна. Первое, самое верхнее окно, отображает текущий вид пирамиды в уменьшенном масштабе, остальные 3 соответственно показывают те пирамиды, которые жестко связаны с текущим сегментом, на котором находится курсор.
- Добавлена возможность масштабирования лабиринта, как кнопками на панели так и прокруткой мыши.
- Выбрать нужную пирамиду можно нажав на кнопку на панели с изображением пирамиды, откроется окно из игры с картой пирамид. Карту пирамид можно переносить, схватив в любом месте темного фона окна.
- Появилась плавающая панель инструментов с элементами из игры.
- Добавлен режим пред просмотра добавляемого элемента (выбрав элемент на панели "Инструменты" и поместив указатель мыши на основное поле пирамиды, сразу можно увидеть как будет выглядеть элемент при добавлении, больше актуально для лестниц и мумий). Отключить отображение можно в меню Вид - Указатель.
- Добавлена возможность редактировать bin файл с игрой.
- Добавлена возможность сохранять bin файл с игрой или делать копию (Save As).
- Добавлена возможность загрузки оригинального bin файла с игрой с нашего сервера к себе на диск.
ВНИМАНИЕ!!! Для работы приложения у Вас должен быть установлен пакет Microsoft .NET Framework 4, скачать можно здесь
Ветка форума разработчика редактора
Как это всё работает
Прежде всего скажу, если что-то непонятно или спорно - у нас есть эталон - игра и 15 стандартных пирамид. Ничего другого, к сожалению нет, но, надеюсь, ещё появится. Не зря же вы читаете этот текст.Начнём со стен. Наверное, вы уже замечали, что некоторые пирамиды чем-то похожи друг на друга. И даже понятно чем - рисунком стен. Раньше я грешил на убогую фантазию дизайнеров лабиринтов - мол, лень было напрягаться, накопировали одно в другое, и все дела. В действительности, всё оказалось несколько сложнее. Наверное, вы замечали, что при переходе с экрана на экран, он перерисовывается половинками. Такую половину экрана далее будем называть сегментом. Так вот, таких сегментов стен в игре всего 14 и все пирамиды строятся из этих 14 стандартных сегментов! В сегментах описываются только стены и больше ничего. Одноэкранная пирамида имеет 2 половинки экрана = 2 сегмента, двухэкранная, соответственно, 4. На самом деле все пирамиды имеют 4 сегмента, просто "лишние" сегменты имеют номер 0. Ноль означает отсутствие сегмента, сегмент №15 в игре не предусмотрен, хотя теоретически мог бы быть.
Таким образом, создание пирамиды начинается с выбора подходящих сегментов стен. Получается, нельзя взять и изменить стены у одной пирамиды, они изменятся в тех пирамидах, куда входят. Поэтому наборы стен надо разрабатывать сразу для всех пирамид. Для особо продвинутых скажу, что поскольку половина экрана пирамиды составляет 16х22 позиции, то один сегмент упаковывается в 22 машинных слова (в слове как раз 16бит), а все 14 сегментов занимают 308 слов.
Да, о пирамидах. Алгоритмом игры их предусмотрено 15, ни больше, ни меньше. После того, как стены отрисованы, на пирамиду накладывается всё остальное. Это остальное хранится в специальном массиве описаний пирамид.
Вот формат описания каждой пирамиды:
1) 1е слово: 4 сегмента пирамиды
2) 2 и 3е слово - координаты входа и выхода. Они могут совпадать, тогда в игре мы видим их как один вход-выход. Во всех 15 пирамидах эти координаты расположены на пустом месте, не на стене, что как бы намекает. В редакторе они обозначаются ключами: вход - красным, выход - зелёным, совмещённый вход-выход синим.
3) 4е слово - количество мумий. Мумий может быть от одной до трёх. (в игре только 3 ячейки памяти для них) Совсем без мумий не получится. Игра вылетит.
Далее идут слова-описания мумий. 4 старших бита цвет (красный, зелёный, синий) и 10 бит — координаты места рождения. Почему так — не знаю. Т.к. 10 бит не покрывают всю пирамиду, в нижних 6 строчках месторождение мумий сделать не удастся. Поэтому редактор не ставит мумии в нижние 6 строчек.
4)Слово = Количество алмазов. Во-первых, в пирамиде должен быть хотя бы один алмаз. Во-вторых, алмаз обладает интересным свойством прорезать стены весьма хитрым образом. Каким — будет сказано ниже.
Далее идут координаты алмазов
5)Слово = Количество кинжалов. Должен быть хотя бы один кинжал. Как вы помните, в самой первой пирамиде кирок нет, а кинжал уже есть. Кинжал прорезает 1 клетку стены, где находится.
Далее идут координаты кинжалов
6)Слово = Количество кирок. Может быть нулевым. Кирка прорезает 1 клетку стены, где находится.
Далее идут координаты кирок
7)Слово = Количество дверей. Может быть нулевым. Дверь растёт от стены до стены. Предполагается, что внизу и вверху есть стены, а посередине пустое пространство. В толще стены программа вам дверь не развернёт.
Далее координаты дверей
8)Слово = Количество лестниц. Лестница должна быть хотя бы одна. Лестницы растут снизу вверх, пока не упрутся в стену. Стену они прорезают, чтобы можно было ходить между этажами. Теоретически, нижняя точка необязательно должна упираться в стену. Поэтому редактор рисует лестницы с нижней точки.
Далее координаты лестниц
9)Слово = Количество вырастающих столбиков. Столбики вырастают через некоторое время после запуска пирамиды. Время это может меняться. Длина столбика всего две клетки. Если кто-то стоит на месте будущего столба, то столб не растёт, пока этот кто-то не уйдёт.
Далее идут координаты столбов.
Суммарная длина описаний всех 15 пирамид составляет 572 слова. Мы вынуждены с этим считаться, потому что если наши описания пирамид превысят эту длину, затрутся другие данные, и игра не будет работать. В редакторе место под описания пирамид составляет 1000 слов, чтобы не мешать полёту творческой мысли. Но на момент экспорта в игру длина должна быть не более 572 слов, иначе ничего не экспортируется.
И, наконец, третий важный массив, который в редактировании участвует косвенно, но знать о нём нужно. Поскольку длина описания каждой пирамиды разная, имеется таблица адресов пирамид из 15 ячеек, каждая из которых ссылается на начало описания соответствующей пирамиды.