Четверг, 25.04.2024, 10:09
Главная Регистрация RSS
Приветствую Вас, Гость
Поиск по сайту
Авторизация

Меню сайта
Game Maker
Если вы только-только начали изучать игрострой и еще даже не успели скачать сам Game Maker, предлагаем вам на выбор следующие версии программы:

Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации.
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации.
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна.
Топ 5 игр
Агент Green 4.2 / 5.0
FeDo 4.2 / 5.0
To Mars: Sec... 4.2 / 5.0
To Mars+MapE... 3.9 / 5.0
Paintball 3.8 / 5.0

Топ игр составлен путем пользовательского голосования.

Если вы не согласны с какой-либо оценкой, примите участие и поставьте свой балл игре. Ваша оценка очень важна для нас ;)
Статистика



На сайте: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Разработка игр

Урок 16

Я однажды уже трогал тему создания 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
Категория: Разработка игр | Добавил: qwerto (15.12.2011)
Просмотров: 6058 | Рейтинг: 4.4/13
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]