Я однажды уже трогал тему создания 3D игры, но рассказал я тогда еще не все возможности Game Maker в этом пространстве. Поскольку графика, тем более 3D, это такое дело - я написал целую статью почти полностью раскрывающую все скрипты в 3D мире...
Войдем в 3D
В общем начнем с уже знакомого входа в 3D мир. Он осуществляется следующим скриптом:
d3d_start()
Вам этот простенький скрипт уже знаком по трем урокам). Но за кадром я постоянно оставлял не менее важный скрипт выхода из 3D пространства:
d3d_end()
Так же не забудем пожалуй и некоторые важные переменные: draw_set_color() и z.
draw_set_color() указывает цвет обрисовки. Например:
draw_set_color(c_white)
z указывает высоту объекта. Например:
z:=10;
Простые объекты
Пластина
Одна из самых распространенных фигур - пластина(floor). Рисуется она как обычный квадрат, только с параметрами z. Вот шаблон:
d3d_draw_floor(<x>,<y>,<z>,<x1>,<y1>,<z1>,<текстура>,1,1);
В пример могу привести прорисовку игрока в 14 уроке:
d3d_draw_floor(x-16,y-16,0,x+16,y+16,0,sprite_get_texture(sprite1,image_index),1,1);
Стены
Стены(wall) используются не так часто относительно пластины конечно, но используются. Создается стена по следующему шаблону:
d3d_draw_wall(<x>,<y>,<z>,<x1>,<y1>,<z1>,<текстура>,1,1);
Как вы можете убедиться - стена это почти тоже что и пластина, только в вертикальном положении.
Блоки
Блоки(block) порой очень нужны в "игродельстве". Строятся блоки по следующему шаблону:
d3d_draw_block(<x>,<y>,<z>,<x1>,<y1>,<z1>,<текстура>,1,1);
В пример могу привести коробочку из 12 урока:
d3d_draw_block(x-16,y-16,-16,x+16,y+16,16,sprite_get_texture(sprite0,0),1,1);
Многополигонные модели
Очень малой популярностью пользуются многополигонные модели, поскольку рисовать их обычно приходится вручную, а загружать неоткуда. Но именно с помощью таких моделей можно создать собственную форму, например человечка. Хотя я не пользуюсь такими моделями, но вкратце расскажу о них.
Начало
Каждый скрипт рисующий многополигонную модель должен располагаться в событииDraw. Так же зачастую такой скрипт выделяют фигурными скобками:
{
...
}
Начинается такой скрипт обычно с выбора ориентировочного примитива(kind). Например pr_pointlist - выделение точек, pr_linestrip - выделение граней, pr_trianglelist - выделение всего объекта. Ну например начнем так:
{
d3d_primitive_begin(pr_trianglelist);
}
Текстура
Текстура каждому важна, текстура каждому нужна, а загружается текстура для модели следующим кодом:
d3d_primitive_begin_texture(<kind>,<текстура>);
Например возьмем новый фон(backgound) с названием f1 и загрузим в наш код:
{
d3d_primitive_begin(pr_trianglelist);
d3d_primitive_begin_texture(pr_trianglelist,f1);
}
Вершины
Многополигонная текстура рисуется за счет точек - вершин. Вершины добавляются следующим образом:
d3d_vertex(<x>,<y>,<z>);
Именно с помощью таких вершин рисуется модель.
Конец
Не забываем закончить нашу модель! Для этого используется следующая команда:
d3d_primitive_end();
Загрузка текстур
Ну и наконец самое важное - загрузка текстур. Такая загрузка осуществляется как при помощи фонов, так и при помощи спрайтов. Например загрузка текстуры в переменную texпри помощи фонов будет выглядеть так:
tex:=background_get_texture(<фон>);
То же самое только со спрайтами будет выглядеть несколько сложней:
tex:=sprite_get_texture(<спрайт>,image_index);
Но вот мы с вами и поговорили о возможностях 3D графики в Game Maker.
|
пятница, 9 ноября 2012 г.
Продолжение создания графики, только теперь с 3D.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий