Программирование с нуля - это совсем просто! 96) Программирование спрайтовых игр: функции рисования
Школа программирования
96) Программирование спрайтовых игр: функции рисования
Начинаем рисовать.
В прошлом уроке по BlitzBasic (N 93) мы сформировали шаблон двумерной игры, которым будем активно пользоваться в дальнейшем. При желании вы можете подобрать подходящее разрешение в параметрах команды Graphics. В дальнейшем мы будем исходить из разрешения 640*480 точек и глубины цветности 16 бит.
Напоминаю шаблон:
Graphics 640,480,16
SetBuffer BackBuffer()
While Not KeyDown(1)
Flip
; что-то рисуем
Wend
Задание цвета.
Команда Color задает цвет, которым будут выполняться последующие графические операции, для которых цвет задается по умолчанию. Записывается она так:
Color r,g,b
где r,g и b - значения интенсивности соответственно красного, зеленого и синего цветов. Интенсивность задается числами от 0 до 255. Нулю соответствует минимальная интенсивность, 255- максимальная. Комбинация 0,0,0 соответствует черному цвету, комбинация 255,255,255 - белому.
Примеры:
Color 0,0,0
Color 0,255,0
Случайное значение.
Функция формирования случайного значения применяется практически в каждой программе для моделирования неповторимых эффектов. Записывается она следующим образом:
Rnd(min,max)
где величины min и max задают диапазон, в котором будет располагаться сгенерированное случайное число.
Примеры:
Rnd(0,1) - возвращает случайные значения 0 или 1.
Rnd(10,999) - возвращает случайные значения из диапазона от 10 до 999.
Вывод точки на экран.
Команда
Plot x,y
рисует на экране точку в позиции x,y (позиция должна укладываться в экранное разрешение, заданное командой Graphics). Цвет этой точки будет либо белым (по умолчанию), либо определенным в команде Clr.
Случайное заполнение экрана точками
Теперь, на основе этих команд, мы уже можем сделать достаточно симпатичную программу. Будем в позиции программы, где непосредственно выполняется рисование, вызывать команду Plot. Позицию выводимой точки зададим случайным образом, с помощью функций Rnd().
Graphics 640,480,16
SetBuffer BackBuffer()
While Not KeyDown(1)
Flip
Plot Rnd(1,640), Rnd(1,480)
Wend
Задание. Модифицируйте эту программу так, чтобы каждая точка выводилась не белым, а случайным цветом.