суббота, 26 мая 2012 г.

Редактор карт в 80 строк. Вступление

Начну серию статей "Как создать простой, но достаточно функциональный редактор карт из 80 строк". Учтите - 80 строк - это на BlitzMax'е, на других средах разработки может быть как больше, так и меньше строк.

Для начала опишу концепцию будущего редактора карт:
У нас имеется папка с редактором карт, в которой находятся сам редактор карт и файл map.txt, который будет хранить созданную карту.



Запуская редактор карт с помощью различных комбинаций кнопок мы будем расставлять каждому тайлу (в моем случае тайлы размером 40х40, но можно использовать и другие размеры) отдельный номер. Игра, загружая карту, будет смотреть на этот номер и как-то реагировать (в зависимости от того, как вы, собственно говоря, запрограммируете её). К примеру, считывая карту и заметив цифру 1, она поставит стартовую позицию игрока на карте в координатах, соответствующих текущему считывающемуся тайлу.
На рисунке выше представлена структура нашего будущего редактора карт. Я его разбил на 5 небольших функций.

Функция drawlines() очень проста - она отрисовывает сетку, чтобы вам было удобнее расставлять объекты.

Функция controls() отслеживает нажатия кнопок. К примеру, кликнув мышью на пустой тайл, она присвоит ему значение текущей "кисти". Что такое "кисть"? Это текущая выбранная пользователем переменная, которая присвоится тайлу при нажатии на него.

Функция initmap() - при запуске она "обнуляет" массив тайлов, из которого состоит карта. Позже я более подробно расскажу о том, как будет устроена карта.

Функция drawtiles() - отрисовывает объекты, в зависимости от значения тайла. Она схожа с функцией инициализации и отрисовки карты в игре, однако тут её можно настроить как угодно.


Функция savemap() будет отвечать за сохранение карты.

Если вы не поняли значения каких-либо вышеприведённых функций или у вас остаются вопросы, то не унывайте, в следующих статьях каждая функция будет описываться более подробно, а процесс создания редактором будет объяснен шаг за шагом.

Преимущества нашего будущего редактора:

Простота создания;
Легкость в управлении;
Удобство редактирования;
Небольшое количество строчек кода.

Недостатки:

Не самая удобная система редактирования;
Сохранение карты в один и тот же текстовый документ. Создав одну карту, вам надо будет её куда-нибудь скопировать или переименовать, чтобы приступить к созданию следующей.

***


Комментариев нет:

Отправить комментарий