Главная » Статьи » Играем Blitz » BlitzMAX

BlitzMax для начинающих. Часть 1

Это простенький туториал по BlitzMax. Цель в том, чтобы нарисовать какой-нить текст на экране в графическом режиме. OK, давайте не будем терять время и сразу перейдем к установке графического режима.

width=640

height=480
depth=16

Graphics width,height,depth

Сперва определим переменные для хранения высоты, ширины, и глубины цвета - таким образом, мы сможем использовать их позже, если\когда нам понадобится знать параметры экрана.

Затем мы используем комманду Graphics, чтобы установить графический режим и создать полноэкранное окно разрешением 640x480 и глубиной цвета в 16 бит, чтобы можно было рисовать в нем. Перед рисованием чего-либо на экране мы должны обязательно использовать команду Graphics.

Теперь, давайте напишем какой-нибудь текст на экране. В отличии от Blitz3D, мы используем растровые шрифты для отображения текста вместо простых шрифтов. Растровые шрифты лучше преобразуемых шрифтов, потому что они отображаются быстрее и с ними можно обращаться, как с обычными картинками, т.е. мы можем их блендить, крутить и т.д.

font=LoadImageFont("Arial.ttf",1)
SetImageFont font

Первая строка загружает наш шрифт в память и возвращает указатель на адрес в памяти, который мы можем потом использовать для установки шрифта текущим, что мы и делаем во второй строке.

Теперь давайте начнем наш главный цикл.

While Not KeyDown(KEY_ESCAPE)

Это начало нашего главного цикла. Он просто проверяет, нажат ли Esc или нет - если нажат, то мы выйдем из цикла, а если нет, то код внутри цикла будет выполняться дальше.

Мы использовали KEY_ESCAPE в нашем цикле, но не определили его значение в начале. Дело тут в том, что есть такой модуль, содержащий константы со СканКодами (номерами клавиш), одной из таких констант является KEY_ESCAPE.

ОК, теперь давай нарисуем наш текст.

DrawText "Hello World",0,0

Этот код выведет текст "Hello World" в backbuffer(Задний Буфер) с координатами 0,0 используя текущий шрифт, который мы установили ранее.

0,0 в BlitzMax - это верхний левый угол экрана. Если мы хотим двигать текст вправо\влево, то нам нужно только изменить (больше - правее) переменную x (первое значение), а если вверх \ вниз, изменить (больше - ниже) переменную y (второе значение). Чтобы отобразить текст в нижнем правом углу, то мы можем выставить значения близкие к тем, которые мы использовали в комманде Graphics - 640 и 480.

BackBuffer (Задний Буфер) - это как бы спрятанный экран, который позволяет тебе рисовать что угодно, без показывания самого процесса рисования на экране во время вызова команды рисования.

Когда ты захочешь показать всё то, что ты нарисовал, то тебе понадобится "перевернуть" (Flip-нуть) BackBuffer, тогда он займет место FrontBuffer-а (картинка, которую мы видим). Это мы сейчас и сделаем.

Это напишет наш текст на экране. Круто!.

Итак, что будем делать теперь? Ну, самым лучшим, наверное, будет, если мы отчистим backbuffer. "Но",- спросишь ты, - "зачем?". Ну, таким образом мы сможем рисовать заново в следующем повторении цикла. Так действует движок большинства игр - рисует всё в BackBuffer, "flip-ает" его, затем очищает, чтобы можно было начинать рисовать следующий кадр.

Теперь наш backbuffer чист, и мы можем начать всё заново...

Это конец нашего главного цикла. У каждого цикла должны быть свое начало и конец, и когда BlitzMax достигнет конца, он начнет всё с начала.

Это наша первая прога на BlitzMax! Она просто выводит надпись "Hello World" на экран. Вот весь код.

width=640

height=480
depth=16
Graphics width,height,depth 

font=LoadImageFont("Arial.ttf",1)
SetImageFont font

While Not KeyDown(KEY_ESCAPE)

 DrawText "Hello World",0,0

 Flip
 Cls
 

Wend
Категория: BlitzMAX | Добавил: AD77Root (31 Июля 2015)
Просмотров: 78 | Рейтинг: 0.0/0
Всего комментариев: 0
class="uForm uComForm">
avatar