воскресенье, 27 мая 2012 г.

Создание редактора карт. Часть 1 - объявление констант и глобальных переменных.

Курсивом выделен исходный код программы.

Чтобы наш редактор карт можно было подстроить под любое разрешение экрана, объявим две глобальные переменные:

Const g_screen_width = 800
Const g_screen_heigth = 600
Graphics g_screen_width,g_screen_heigth


Слово Const даёт компилятору BlitzMax понять, что объявляется константа. Затем следует имя константы и её значение, но вы это и так наверняка знаете. Если не знаете - подучите любой язык программирования, ключевые слова в них схожи.
Слово Graphics инициализирует графику и создаёт окно размером 800х600 (в зависимости от наших констант).

Объявим ещё несколько переменных и выполним одну команду:

Global current_tile = 0
Global font = LoadImageFont("arial.ttf",32)
SetImageFont font
global map[g_screen_width/40+1,g_screen_heigth/40+1]

Current_tile - переменная , отвечающая за текущее значение, присваиваемое "кусочку" карты, на который мы кликнем. "Кусочки" в дальнейшем будут именоваться тайлами.

Команды LoadImageFont и SetImageFont отвечают за загрузку шрифта, установление размера шрифта, а также за установку шрифта в игру/программу. Думаю, пока всё понятно.

Уделим больше внимания объявлению двумерного массива map. Скроллинг карты - это реализовать немного тяжелее, поэтому на данный момент редактор карт будет без скроллинга, то есть вся карта на одном экране. Так как размер тайла 40х40, то нам для запоминания всей карты нужен массив с g_screen_width/40+1 (21) строками и g_screen_heigth/40+1 (16) столбцами. По 1 строке и столбцу я добавил на всякий случай, вдруг пригодится. Думаю, вы поняли весь приведённый выше код. Если да - переходите к следующей части обучения, если нет - то постарайтесь вникнуть получше.

Весь код программы на данный момент:


Const g_screen_width = 800
Const g_screen_heigth = 600
Graphics g_screen_width, g_screen_heigth
Global current_tile = 0
Global font = LoadImageFont("arial.ttf",32)
SetImageFont font
Global map[g_screen_width/40+1,g_screen_heigth/40+1]


***


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

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