ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Главная » Статьи » Game Maker » Game Maker

Игровая графика

Игровая графика

Важной частью игры является графика. Game Maker заботится о графике, но даже для простых игр, Вам нужно о ней позаботиться самостоятельно. Но иногда, Вы захотите получить более полное управление. Для некоторых аспектов существуют действия, но, используя код, Вы можете управлять большим количеством аспектов. Эта глава описывает все переменные и функции доступные для игровой графики, а также предоставит Вам больше информации о том, что действительно происходит в игре.

Информация об игровой графике может быть обнаружена на следующих страницах:

Спрайты и Изображения
Задние Фоны
Рисование Спрайтов и Фонов
Рисование Форм
Шрифты и Текст
Расширенные Функции Рисования
Рисование Поверхностей
Тайлы
Экран
Окно
Виды
Перекрашивание Экрана

 

Спрайты и изображения

 

Каждый объект связан с ассоциированным к себе спрайтом. Это или одиночное изображение, или изображение, состоящее из многих частей изображений (кадров). Для каждого образца объекта, программа рисует соответствующее изображение на экране со своим началом (как определено в свойствах спрайта) в позиции (x,y) образца объекта. Когда имеются кадры, то они последовательно повторяются, чтобы получить эффект анимации. Существует множество переменных, которые влияют на способ рисования изображения. Они могут использоваться для изменения эффектов. Каждый образец объекта имеет следующие переменные:

visible Отражает, рисовать ли спрайт для объекта (истина) или нет (ложь). Невидимые образцы объекта всё еще активны и создают события столкновения; Вы только не видите их. Установка видимости в ложь полезно, например, когда нужно скрыть диспетчер объектов (сделайте его нетвёрдым телом, чтобы избегать событий столкновения) или переключения.
sprite_index Содержит имя спрайта для текущего образца объекта. Вы можете изменить его, чтобы задать образцу объекта другой спрайт. Как значение, Вы можете использовать имена других спрайтов, которых Вы определили. Смена спрайта не изменяет индекс к настоящему времени видимого кадра.
sprite_width* Указывает ширину спрайта. Эта величина не может быть изменена, но Вы можете захотеть использовать её.
sprite_height* Указывает высоту спрайта. Эта величина не может быть изменена, но Вы можете захотеть использовать её.
sprite_xoffset* Указывает горизонтальное смещение спрайта, как определено в свойствах спрайта. Эта величина не может быть изменена, но Вы можете захотеть использовать её.
sprite_yoffset* Указывает вертикальное смещение спрайта, как определено в свойствах спрайта. Эта величина не может быть изменена, но Вы можете захотеть использовать её.
image_number* Содержит количество кадров у спрайта текущего образца объекта (не может быть изменено).
image_index Содержит номер кадра спрайта текущего образца объекта, с которого следует начать проигрывание анимации. Эта переменная указывает к настоящему времени нарисованный кадр (нумерацию начинайте с 0). Вы можете изменить текущее изображение изменением этой переменной. Программа продолжит повторение, начиная с новым индексом. (Значение может иметь дробную часть. В этом случае, оно всегда будет округлено в меньшую сторону, чтобы получить кадр, который рисуется.)
image_speed Cкорость с которой повторяется цикл кадров. Значение 1 указывает, что каждый шаг будет получать следующее изображение. Меньшие значения переключают кадры медленнее, так как требуют для этого больше времени. Большие значения пропускают некоторые кадры, делая тем самым движение быстрее. Иногда Вы захотите, чтобы конкретный кадр был видимым, и, при этом, не захотите, чтобы программа их всех не повторяла. Это может быть достигнуто установкой скорости на 0 и выбором "правильного" кадра. Например, допустим, что у Вас есть объект, который может вращаться, и Вы создаёте спрайт, который имеет кадры для множества направлений (против часовой стрелки). Затем, в событии шага объекта, Вы можете установить

{
  image_index = direction * image_number/360;
  image_speed = 0;
}

depth Отражает текущую глубину "отрисовки" спрайта текущего образца объекта. Вы можете изменить это значение, устанавливая глубину изображения. Значение по умолчанию - 0, если Вы не установили это в другом значении в свойствах объекта. Более высокое значение продвигает образец объекта прочь. (Вы можете также использовать отрицательные значения.) Образцы объекта с более высокой глубиной пролегают позади образцов объекта с более низкой глубиной. Установка глубины гарантирует, что образцы объекта находятся в порядке. Вы можете захотеть (например, плоскость перед облаком) что бы фоновые образцы объекта иметь высокую глубину (положительную), а образцы объекта переднего плана, должны иметь глубину низкого уровня (отрицательную).
image_xscale Коэффициент масштабирования спрайта по оси X для создания больших или малых изображений. Значение 1 указывает обычный размер. Вы должны отдельно установить горизонтальный xscale и вертикальный yscale размер. Изменение масштабирования также изменяет значения для ширины и высоты изображения и влияет на события столкновения. Поймите, что масштабированные изображения (в основном, когда Вы делаете их меньше), занимают для "отрисовки" больше времени. Изменение масштабирования может быть использовано для получения 3-D эффекта. Вы можете использовать величину -1, чтобы отражать спрайт по горизонтали.
image_yscale Содержит коэффициент масштабирования спрайта по оси Y. 1 - нет масштабирования. Вы можете использовать значение -1, чтобы отразить спрайт по вертикали .
image_angle Угол, с которым спрайт будет вращаться. Вы определяете градусы против часовой стрелки. Значение 0 не указывает вращения. Эта переменная может быть установлена только в Pro издании Game Maker!
image_alpha Содержит коэффициент прозрачности спрайта (от 0 до 1). Используйте осторожно. Частично прозрачные изображения при "отрисовке" занимают много времени и замедляют игру.
image_blend Смешивает цвет, используемый при рисовании спрайта. Величина c_white по умолчанию. Когда Вы определяете другую величину, то изображение смешивается с этим цветом. Это может быть использовано для перекрашивания спрайта "на лету". Эта переменная может быть установлена только в Pro издании Game Maker!
bbox_left* Содержит координату левого края прямоугольника спрайта, который используется для просчёта столкновений (в счёт также берётся масштабирование).
bbox_right* Содержит координату правого края прямоугольника спрайта, который используется для просчёта столкновений.
bbox_top* Содержит координату верхнего края прямоугольника спрайта, который используется для просчёта столкновений.
bbox_bottom* Содержит координату нижнего края прямоугольника спрайта, который используется для просчёта столкновений.

 

 

Задние фоны

Каждая комната может иметь аж до 8 фонов. Также у неё имеется фоновый цвет. Все аспекты этих фонов Вы можете изменить в части кода, используя следующие переменные (отметьте, что некоторые из них подготавливает этот диапазон от 0 до 7, указывая другие фоны):

background_color Отражает цвет заднего фона для текущей комнаты.
background_showcolor Отражает, заполнять ли задний фон указанным цветом или нет.
background_visible[0..7] Отражает, какой задний фон в текущий момент отображается.
background_foreground[0..7] Показывает, использовать ли задний фон в качестве переднего или нет.
background_index[0..7] Отражает имя используемого заднего фона.
background_x[0..7] Отражает позицию изображения, используемого в качестве заднего фона по оси X.
background_y[0...7] Отражает позицию изображения, используемого в качестве заднего фона по оси Y.
background_width[0...7]* Содержит ширину изображения, использующуюся в качестве заднего фона.
background_height[0...7]* Содержит высоту изображения, использующуюся в качестве заднего фона.
background_htiled[0..7] Заполняет задний фон по горизонтали используемым изображением.
background_vtiled[0..7] Заполняет задний фон по вертикали используемым изображением.
background_xscale[0..7] Горизонтальный коэффициент масштабирования для фона. (Должно быть положительным; Вы не можете использовать отрицательное значение при отражении фона.)
background_yscale[0..7] Вертикальный коэффициент масштабирования для фона. (Должно быть положительным; Вы не можете использовать отрицательное значение при отражении фона.)
background_hspeed[0..7] Содержит скорость горизонтальной прокрутки заднего фона (в пикселях за шаг).
background_vspeed[0..7] Содержит скорость вертикальной прокрутки заднего фона (в пикселях за шаг).
background_blend[0..7] Смешивает цвет используемый при рисовании фона. Значение c_white по умолчанию. Эта переменная доступна только в Pro издании Game Maker!
background_alpha[0..7] Содержит коэффициент прозрачности, используемый для текущего заднего фона. Величина 1 является обычным цветом; величина 0 - полностью прозрачным.

 

 

Рисование спрайтов и фонов

Есть возможность позволить объектам выглядеть отличающимися от своих изображений. Для этого имеется целый набор доступных функций. Прежде всего, имеются функции для рисования спрайтов и фонов другими средствами. Эти предоставит Вам более полное управление над внешним видом спрайта. Также Вы можете нарисовать (плитки) фоны.

draw_sprite(sprite,subimg,x,y) Рисует кадр с номером subimg (-1 = текущий) спрайта в точке с координатами (x,y). (Без смешивания цвета и без альфа прозрачности.)
draw_sprite_stretched(sprite,subimg,x,y,w,h) Рисует кадр с номером subimg (-1 = текущий) спрайта в точке с координатами (x,y) и растягивает его до ширины w и высоты h.
draw_sprite_tiled(sprite,subimg,x,y) Рисует кадр с номером subimg (-1 = текущий) спрайта в точке с координатами (x,y), а затем заполняет оставшееся место такими же спрайтами.
draw_sprite_part(sprite,subimg,left,top,right,bottom,x,y) Рисует указанную часть кадра subimg (-1 = текущий) спрайт с левым верхним углом части в позиции (x,y).

draw_background(back,x,y) Рисует задний фон в точке с координатами (x,y). (Без смешивания цвета и без альфа прозрачности.)
draw_background_stretched(back,x,y,w,h) Рисует задний фон в точке с координатами (x,y), растянутый до указанной ширины w и высоты h.
draw_background_tiled(back,x,y) Рисует задний фон, начиная в точке с координатами (x,y), а затем замащивает оставшееся свободное пространство этим же фоном.
draw_background_part(back,left,top,right,bottom,x,y) Рисует указанную часть фона с левым верхним углом части в позиции (x,y).

Следующие функции являются расширением вышеуказанных функций. Эти расширения могут быть использованы только в Pro издании Game Maker!

draw_sprite_ext(sprite,subimg,x,y,xscale,yscale,rot,color,alpha) Рисует спрайт, который масштабируется с показателями xscale и yscale и вращается против часовой стрелки в градусах. color - цвет смешивания (используйте c_white, чтобы смешивания не было) и alpha - указывает показатель прозрачности с которым изображения объединяются со своим фоном. Значение 0 делает спрайт полностью прозрачным. Значение 1 делает его полностью твёрдым. Эта функция может создать большой эффект (например, частично прозрачные взрывы).
draw_sprite_stretched_ext(sprite,subimg,x,y,w,h,color,alpha) Рисует спрайт, который растягивается по области левого верхнего угла (x,y) и ширины w и высоты h. color - является цветом смешивания и alpha - указывает установку прозрачности.
draw_sprite_tiled_ext(sprite,subimg,x,y,xscale,yscale,color,alpha) Рисует изразцовый спрайт, который заполнит всю комнату, но теперь с коэффициентами масштабирования и с установками цвета и прозрачности.
draw_sprite_part_ext(sprite,subimg,left,top,right,bottom,x,y,xscale,yscale,color,alpha) Рисует указанную частью кадра subimg (-1 = текущий) спрайта с левым верхним углом части в позиции (x,y), но теперь с коэффициентами масштабирования и с установками цвета и прозрачности.
draw_sprite_general(sprite,subimg,left,top,right,bottom,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) Общая основная функция рисования. Рисует указанную часть кадра subimg (-1 = текущий) спрайта с левым верхним углом части в позиции (x,y), но теперь с коэффициентами масштабирования, углом вращения, цветом для каждых четырёх граней (левый верхний, правый верхний, нижний правый и нижний левый), и величиной alpha прозрачности.

draw_background_ext(back,x,y,xscale,yscale,rot,color,alpha) Рисует фон, который масштабируется и вращается с цветом смешивания (используйте c_white, чтобы смешивания не было) и альфа прозрачности (0-1).
draw_background_stretched_ext(back,x,y,w,h,color,alpha) Рисует фон, который растягивается по указанной области. color - цвет смешивания и alpha - указывает значение прозрачности.
draw_background_tiled_ext(back,x,y,xscale,yscale,color,alpha) Рисует изразцовый фон, который должен заполнять всю комнату, но теперь с коэффициентами масштабирования и с установками цвета и прозрачности.
draw_background_part_ext(back,left,top,right,bottom,x,y,xscale,yscale,color,alpha) Рисует указанную часть фона с левым верхним углом части в позиции (x,y), но теперь с коэффициентами масштабирования и с установками цвета и прозрачности.
draw_background_general(back,left,top,right,bottom,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) Общая основная функция рисования. Рисует указанную часть фонового изображения с левым верхним углом части в позиции (x,y), но теперь с коэффициентами масштабирования, углом вращения, цветом для каждых четырёх граней (левый верхний, правый верхний, нижний правый, и нижний левый) и величиной alpha прозрачности.

 

Рисование Форм

Имеется целый набор функций доступных для рисования разнообразных форм. Также имеются функции для рисования текста (смотрите следующую страничку). Вы можете использовать их только в событии рисования объекта; эти функции, в общих чертах, не генерируют никаких значений в коде. Поймите, что столкновения между образцами объектов определяются своими спрайтами (или масками), а не тем, что Вы дорисовали. Существуют следующие функции рисования, которые могут использоваться для рисования основных форм.

draw_clear(col) Очищает целую комнату в заданный цвет col (не alpha смешивание).
draw_clear_alpha(col,alpha) Очищает целую комнату в заданном цвете и альфа величине (в основном полезно для поверхностей).
draw_point(x,y) Рисует точку в координатах (x,y) в текущем цвете.
draw_line(x1,y1,x2,y2) Рисует отрезок с началом в точке (x1,y1) и окончанием в точке (x2,y2).
draw_line_width(x1,y1,x2,y2,w) Рисует отрезок с началом в точке (x1,y1) и окончанием в точке (x2,y2) и длиной w.
draw_rectangle(x1,y1,x2,y2,outline) Рисует прямоугольник с координатами верхнего левого (x1,y1) и правого нижнего (x2,y2) угла. outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).
draw_roundrect(x1,y1,x2,y2,outline) Рисует прямоугольник с координатами верхнего левого (x1,y1) и правого нижнего (x2,y2) угла с округлёнными углами. outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).
draw_triangle(x1,y1,x2,y2,x3,y3,outline) Рисует треугольник с вершинами в точках с координатами (x1,y1), (x2,y2), (x3,y3). outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).
draw_circle(x,y,r,outline) Рисует окружность в точке (x,y) заданного радиуса r. outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).
draw_ellipse(x1,y1,x2,y2,outline) Рисует эллипс, вписанный в прямоугольник с координатами верхнего левого угла (x1,y1) и правого нижнего (x2,y2). outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).
draw_set_circle_precision(precision) Устанавливает точность, с которой рисуются круги, то есть число долей, из которых они состоят. Точность должна быть между 4 и 64 и должна быть делящейся 4. Можно использовать также для того, чтобы рисовать эллипсы и округленные прямоугольники.
draw_arrow(x1,y1,x2,y2,size) Рисует стрелку с началом в точке (x1,y1) и окончанием в точке (x2,y2). Аргумент size показывает размер "шапки" в пикселях.
draw_button(x1,y1,x2,y2,up) Рисует кнопку. Аргумент up отражает состояние кнопки (0 - нажата, 1 - отпущена).
draw_path(path,x,y,absolute) Используя эту функцию, Вы можете сделать указанный путь в комнате со своим началом в позиции (x,y). Если absolute - истина, то путь будет нарисован в позиции, где он был определён, и величины x и y будут проигнорированы.
draw_healthbar(x1,y1,x2,y2,amount,backcol,mincol,maxcol,direction,showback,showborder) Используя эту функцию, Вы можете создать healthbar (индикатор здоровья) (или любую другую область, которая указывает некоторую величину, например - ущерб). Аргументы x1, y1, x2 и y2 указывают общую область для области. amount - указывает процент области, которая должна быть размещена (должно быть между 0 и 100). backcol - цвет фона для области. mincol и maxcol - указывает цвет, когда сумма - 0 и 100 соответственно. Итак, Вы можете легко нарисовать область, которая будет, например: от зелёного до красного состояния. direction - является направлением, в котором рисуется область. 0 - указывает, что область фиксируется слева, 1 - справа, 2 - вверху и 3 - внизу. Наконец showback - указывает, должен ли блок фона быть отображён, и showborder - указывает блок и область, и должны ли они иметь чёрную граничную линию.

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

draw_set_color(col) Устанавливает цвет, используемый для мгновенного рисования примитивов.
draw_set_alpha(alpha) Устанавливает величину alpha прозрачности для мгновенного использования рисования примитивов. Должно пролегать в диапазоне 0-1. 0 - полностью прозрачный, 1 - непрозрачный.
draw_get_color() Возвращает цвет, используемый для рисования примитивов.
draw_get_alpha() Возвращает значение alpha, используемое для рисования примитивов.

Доступен целый набор встроенных цветов:

c_aqua
c_black
c_blue
c_dkgray
c_fuchsia
c_gray
c_green
c_lime
c_ltgray
c_maroon
c_navy
c_olive
c_orange
c_purple
c_red
c_silver
c_teal
c_white
c_yellow

Следующее функции могут помочь Вам при создании желаемых цветов.

make_color_rgb(red,green,blue) Возвращает цвет с указанными красными, зелёными и синими компонентами, где red, green и blue должны иметь значение от 0 до 255.
make_color_hsv(hue,saturation,value) Возвращает цвет с указанными hue, saturation и компонентами value (каждый между 0 и 255).
color_get_red(col) Возвращает красный компонент цвета col.
color_get_green(col) Возвращает зелёный компонент цвета col.
color_get_blue(col) Возвращает синий компонент цвета col.
color_get_hue(col) Возвращает компонент hue цвета col.
color_get_saturation(col) Возвращает компонент saturation цвета col.
color_get_value(col) Возвращает компонент value цвета col.
merge_color(col1,col2,amount) Возвращает объединённый цвет col1 и col2. Слияние определяется суммой amount. Значение 0 переписывается на col1, а значение 1 на col2, а значения между ними - в "объединяющиеся" значения.

Дополнительные функции.

draw_getpixel(x,y) Возвращает цвет пикселя, соответствующего для позиционирования в позициях (x,y) в комнате. Это не очень быстро обрабатывается, так что используйте осторожно.
screen_save(fname) Сохраняет bmp изображение экрана в заданном fname (имя файла). Полезно для получения скриншотов.
screen_save_part(fname,x,y,w,h) Сохраняет часть экрана в заданном fname.

 

 

Шрифты и текст

В играх Вам иногда понадобиться рисовать тексты. Чтобы нарисовать текст, Вы должны определить шрифт для использования. Шрифты могут быть определены созданием шрифтовых ресурсов (так же в программе Game Maker, используя функции для создания ресурсов). Имеются всё же некоторые функции для рисования текста другим путём. В каждой функции Вы определяете позицию текста на экране. Существует две функции для установки горизонтального и вертикального выравнивания текста, которые относятся к указанной позиции.

Для рисования текста существуют следующие функции:

draw_set_font(font) Устанавливает шрифт, который будет использоваться при рисовании текста. Используйте -1, чтобы установить встроенный по умолчанию шрифт Arial 12.
draw_set_halign(halign) Устанавливает горизонтальное выравнивание, используемое при рисовании текста. Выберите одну из следующих констант как величину:

fa_left
fa_center
fa_right

draw_set_valign(valign) Устанавливает вертикальное выравнивание, используемое при рисовании текста. Выберите одну из следующих констант как величину:

fa_top
fa_middle
fa_bottom

draw_text(x,y,string) Рисует строку в позиции (x,y), используя рисование цвета и букв. Символ # или перевод строки chr(13) или перевод строки chr(10) интерпретируется как окончание строки символов. Таким образом Вы можете сделать "многостроковый" текст. (Используйте \#, чтобы получить сам # символ.)
draw_text_ext(x,y,string,sep,w) Подобно предшествующей программе, но Вы теперь можете определить ещё две вещи. Прежде всего, sep - указывает расстояние разделения между строками текста в "многостроковом" тексте. Используйте -1, чтобы получить расстояние по умолчанию. Используйте w, чтобы указать ширину текста в пикселях. Строки, которые более длинные, разделяются шириной в пробелах или знаках. Используйте -1, чтобы не разбивать строки.
string_width(string) Ширина строки в текущем шрифте при рисовании используя функцию draw_text(). Может использоваться для точного позиционирования графики.
string_height(string) Высота строки в текущем шрифте при рисовании, используя функцию draw_text().
string_width_ext(string,sep,w) Ширина строки в текущем шрифте при рисовании, используя функцию draw_text(). Может использоваться для точного позиционирования графики.
string_height_ext(string,sep,w) Высота строки в текущем шрифте при рисовании, используя функцию draw_text_ext().

Следующие программы позволяют Вам рисовать масштабированный и вращающийся текст, а также использовать цветовой градиент цвета в текстах. Эти функции доступны только в Pro издании Game Maker!

draw_text_transformed(x,y,string,xscale,yscale,angle) Рисует строку в позиции (x,y) так же как выше, но шкала теперь горизонтальная и вертикальная с указанными показателями и вращением против часовой стрелки сверх градусов угла.
draw_text_ext_transformed(x,y,string,sep,w,xscale,yscale,angle) Объединяет функцию draw_text_ext и draw_text_transformed. Что делает возможным рисовать масштабируемый и вращающийся многостроковый текст.
draw_text_color(x,y,string,c1,c2,c3,c4,alpha) Рисует строку в позиции (x,y) подобно вышеупомянутой функции. Четыре цвета определяют цвета левого верхнего, верхнего-правого, нижнего-правого, и нижнего-левого угла текста. alpha - является альфа прозрачностью, используйте (0-1).
draw_text_ext_color(x,y,string,sep,w,c1,c2,c3,c4,alpha) Подобно функции draw_text_ext(), но с цветными гранями.
draw_text_transformed_color(x,y,string,xscale,yscale,angle,c1,c2,c3,c4,alpha) Подобно функции draw_text_transformed(), но с цветными гранями.
draw_text_ext_transformed_color(x,y,string,sep,w,xscale,yscale,angle,c1,c2,c3,c4,alpha) Подобно функции draw_text_ext_transformed(), но с цветными гранями.

 

 

 

Расширенные функции рисования

Это функциональное назначение доступно только в зарегистрированной версии Game Maker.

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

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

draw_point_color(x,y,col1) Рисует точку в позиции (x,y) в заданном цвете.
draw_line_color(x1,y1,x2,y2,col1,col2) Вырисовывает линию из (x1,y1) в (x2,y2), интерполируя цвет между col1 и col2.
draw_line_width_color(x1,y1,x2,y2,w,col1,col2) Вырисовывает линию из (x1,y1) в (x2,y2) с длиной w, интерполируя цвет между col1 и col2 draw_rectangle_color(x1,y1,x2,y2,col1,col2,col3,col4,outline) Рисует прямоугольник. Четыре цвета указываются для левой верхней, верхней правой, нижней правой, и нижней левой вершины. outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).
draw_roundrect_color(x1,y1,x2,y2,col1,col2,outline) Рисует закруглённый прямоугольник. col1 - цвет в середине и col2 - цвет границы. outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).
draw_triangle_color(x1,y1,x2,y2,x3,y3,col1,col2,col3,outline) Рисует треугольник. Три цвета - цвета трёх граней, которые интерполируются над треугольником. outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).
draw_circle_color(x,y,r,col1,col2,outline) Рисует окружность в позиции (x,y) с радиусом r. col1 - цвет в середине и col2 - цвет границы. outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).
draw_ellipse_color(x1,y1,x2,y2,col1,col2,outline) Рисует эллипс. icol1 - цвет в середине и col2 - цвет границы. outline - указывает только схему, которая должна быть нарисована (истина) или должна быть заполнена (ложь).

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

pr_pointlist Грани являются набором точек.
pr_linelist Грани являются набором сегментов линии. Каждая пара граней формирует сегмент линии. Набор граней должен быть равным.
pr_linestrip Грани формируют ломаную линию, сначала присоединяясь ко вторым, вторые к третьим и т.п. Последние не присоединяется к первым граням. Вы должны определить дополнительную копию первой вершины для этого.
pr_trianglelist Грани являются набором треугольников. Каждое "утраивание" граней формирует треугольник. Так что количество граней должно быть кратно 3.
pr_trianglestrip Грани снова формируют треугольники, но на этот раз, по другому. Первые три формируют первый треугольник. Последние две, из этих граней, вместе со следующей вершиной, формируют второй треугольник и т.п. Итак, каждая новая вершина определяет новый треугольник, присоединённый к предшествующему.
pr_trianglefan Подобный списку треугольников, но на этот раз, первая вершина является частью всех треугольников. Кроме того, каждая новая вершина определяет новый треугольник, присоединённый к предшествующей и первой вершине.

Существуют следующие функции для рисования примитивов

draw_primitive_begin(kind) Запускает примитив указанного типа.
draw_vertex(x,y) Добавляет вершину (x,y) в примитив, используя цветовую и alpha величину установленных прежде.
draw_vertex_color(x,y,col,alpha) Добавляет вершину (x,y) в примитив, со своей собственной цветовой и альфа величиной. Это позволяет Вам создавать примитивы с "гладкоизменяющимися" цветовыми и аьлфа значениями.
draw_primitive_end() Заканчивает описание примитива. Эта функция действительно его рисует.

Наконец, возможно рисование примитивов, используя спрайты или фоны в качестве текстур. При использование текстуры, изображение устанавливается в примитиве, восстанавливая свою форму, чтобы установить примитив. Текстуры используются для добавления детализации к примитивам, например - кирпичная стена. Чтобы использовать текстуры, Вы сначала должны получить id (идентификатор) текстуры, которую Вы хотите использовать. Для этого существуют следующие функции:

sprite_get_texture(spr,subimg) Возвращает id текстуры, соответствующему кадру изображения subimg указанного спрайта.
background_get_texture(back) Возвращает id текстуры, соответствующему указанному фону.

Выбранная текстура может всё ещё не поместиться в видео

Категория: Game Maker | Добавил: Strateg (27.12.2010)
Просмотров: 6948 | Комментарии: 2 | Рейтинг: 0.0/0
Всего комментариев: 2
2 The Real Rally  
0
Спасибо автору огромное!

1 sdfgsg  
0
http://nick-name.ru/sertificates/421998/
http://nick-name.ru/sertificates/421998/

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Меню сайта

-=ЯП=-

Конструктор\Движки

Игроделу

Наш опрос
Какой язык программирования вы знаете/учите?
Всего ответов: 73

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

DiamonD
Бесплатный конструктор сайтов - uCoz