Четверг, 28.03.2024, 15:28
Главная Регистрация 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
Главная » Статьи » Разработка игр

Урок 12

Я уже говорил, что создать 3D игру не так уж и сложно. В этом уроке мы еще раз в этом убедимся. Пожалуй мы научим наконец то нашего игрока ходить и создадим атмосферу в игре. Всю работу выполним в три шага:

Создание атмосферы в игре.
Невзрачный фон и отсутствие пола портит нам всю игру. Давайте исправим это. Я предлагаю скачать текстурный пак на нашем сайте, которым мы будем пользоваться: Скачать
Работаем с полом. Нам для этого нужна texture2. Создадим новый объект - inf_room. Для него создадим событие Draw. Введем скрипт:

d3d_draw_floor(0,0,0,room_width,room_height,0,background_get_texture(pol),24,24);

Это скрипт прорисовки пола. Для него мы используем текстуру pol. Я ее выделил. Тем, кто знает английский несложно догадаться, что пол развернется на всю комнату. Часть кода отвечающего за размеры пола я тоже подчеркнул. Объект создан, но текстуры пола нет. Создаем фон(Backgrounds) с названием pol и загрузим в него texture2. Скинем в комнату объект inf_room. Круто, под ногами есть пол)))


Но серое небо невзрачно... Поэтому меняем цвет неба на голубой. Для этого заходим в настройки комнаты во вкладку Фон и меняем цвет на небесный:


Теперь атмосфера нормальная.


Нормальное передвижение.
Стрелки которые я посоветовал в предыдущем уроке оказались немного отсталым вариантом. Приношу свои извинения. Поэтому почти что полностью меняем систему передвижения. Создадим событие press <Up> и release <Up> для объекта camera. В событие press <Up> вводим скрипт:

speed:=4;

А в событие release <Up> вводим другой скрипт:

speed:=0;

В результате этого скрипта при нажатии на кнопку <вверх> игрок изменит скорость на 4 и пойдет вперед. А если отпустить кнопку, то скорость будет равна 0 и игрок будет стоять на месте.


Препятствия.
А вот и самое интересное! ))). Начнем с того, что каждое препятствие большинство игроделов в Game Maker создают в виде куба. 
По сути возможности Game Maker ничем не отстают например от Anim8or или 3D Max. Поэтому продвинутые пользователи в Game Maker могут создать при помощи точек модельку человека, ничем не отключающеюся например от моделек в Counter Strike. Но не об этом сейчас. При помощи texture3 мы сейчас создадим небольшой куб.

Создаем новый фон - toxic. В него грузим texture3. Теперь создадим объект obj_toxic. Создадим для него событие Draw и введем скрипт прорисовки куба:

d3d_draw_block(x-8,y-8,0,x+8,y+8,12,background_get_texture(toxic),1,1); 

Скрипт очень прост. Предлагаю вам позже поиграться с ним и разобрать его свойства. Потому, что значения его параметров мне придется объяснять 3 часа, а на практике проверить значения самому - займет минуты 3.
Но бочка какая-то нетвердая. Поэтому поставим галочку на Твердый:


А так же создадим какой-нибудь условный спрайт для объекта. Например зеленый кружок.

Поскольку препятствий в игре много, то прописывать столкновение объекта camera с каждым из них будет мучительно. Поэтому создадим объект wall_parent. Добавим событие для camera - Столкновение с wall_parent. И введем скрипт: 

x=xprevious; 
y=yprevious; 

Теперь поставим "родителя" для объекта obj_toxic:


Скинем в комнату объект obj_toxic и вот! Мы можем теперь с ним столкнутся:


Нормально) Теперь нарисуем стены. Для них создадим sprite1() и sprite2(). Сделайте белый фон этих спрайтов прозрачным. Теперь создадим объект wall_hor. Сделайте его твердым. Поставьте родителя - wall_parent. Создайте событие Draw и введите скрипт:


d3d_draw_block(x-16,y-2,0,x+16,y+2,64,background_get_texture(sten),1,1); 


Создайте объект wall_vert и поставьте для него такие же свойства. Только в событие Draw измените скрипт на:


d3d_draw_block(x-2,y-16,0,x+2,y+16,64,background_get_texture(sten),1,1); 


Скрипт почти такой же, но он создает другой по размеру куб.
Кстати, совсем забыл. Создайте фон sten размерами 64x64 и загрузите в него texture1. Теперь "облепите" комнату объектами wall_vert и wall_hor как на рисунке:


Ну вот и все! Можете спокойно запускать игрушку и путешествовать по 3D миру! Не пропустите следующий урок!

Категория: Разработка игр | Добавил: qwerto (13.11.2011) W
Просмотров: 7796 | Комментарии: 24 | Рейтинг: 4.8/10
Всего комментариев: 241 2 »
24 Мастер   (20.06.2015 14:57) [Материал]
Мастер Ошибка! Когда подхожу к стенам, их можно пройти! Ещё стены (расположены по горизонтали) разложены не ровно, наложены как по диагонали! Ещё препятствия: к ящику можно подойти, только с одной стороны с другой когда чуть-чуть подходишь уже игрок встаёт, т.е. дальше пройти нельзя, + как сделать управление для влево-вправо?

22 mitmironov2002   (14.12.2014 22:46) [Материал]
mitmironov2002 пишет еще ошибку:
ERROR in
action number 1
of Draw Event
for object camera:

Error in code at line 1:
   d3d_set_projection(x,y,z,x+cos(direction*pi/180),y-sin(direction*pi/180),z-sin(pitch*pi/180),0,0,1) 
                         ^
at position 24: Unknown variable z

0
23 BRESS   (16.12.2014 12:04) [Материал]
BRESS В событии Create необходимо задать значение z. К примеру, z=15

21 mitmironov2002   (14.12.2014 22:42) [Материал]
mitmironov2002 у меня не входит в 3Д пространство

17 IzumrudBlackMoon   (23.09.2013 22:48) [Материал]
IzumrudBlackMoon У меня блок почему-то находится не на поверхности пола, а на небе. при переводе указателя мыши мы можем видеть все стороны, так вот блок находится стабильна том же месте экрана куда переводится указатель мыши. Как бы блок сам является фоном. Как сделать что бы он оказался на полу?

16 Anonim   (15.04.2012 15:52) [Материал]
BRESS ты крутой !!! :)

15 necroman   (14.03.2012 17:48) [Материал]
У меня выходит ошибка
ERROR in
action number 1
of Draw Event
for object camera:

Error in code at line 1:
d3d_set_projection(x,y,z,x+cos(direction*pi/180),y-sin(direction*pi/180),z-sin(pitch*pi/180),0,0,1)
^
at position 24: Unknown variable z

19 Bardon_23   (31.08.2014 09:53) [Материал]
Bardon_23 Если у тебя GM 8 то такой ошибки быть недолжно, а если у тебя GM 8.1 то она и будет появлятся появлятся

1
20 BRESS   (31.08.2014 15:26) [Материал]
BRESS Эта ошибка хоть где может выскочить: у него элементарно переменная Z не объявлена.

Администратор Как изменить ширину и высоту sten?

13 BRESS   (12.03.2012 14:48) [Материал]
BRESS в объектах стен смени выделенный показатель:

d3d_draw_block(x-2,y-16,0,x+2,y+16,64,background_get_texture(sten),1,1);

P.S. Код не копируй! Только найти и смени этот показатель(показатель высоты)

18 Vicktor_BRO   (22.08.2014 20:06) [Материал]
Vicktor_BRO Как сделать чтобы можно было стрефиться ?

14 BRESS   (12.03.2012 15:10) [Материал]
BRESS И кстати, "Администратор", твой ник написан русскими буквами, что вводит некоторое ограничение. Не желаешь его сменить? Отпишись в общем.

10 андрей   (29.01.2012 23:52) [Материал]
у меня проблема с препятствием когда я его ставлю то мне выдоеться ошибка

11 qwerto   (03.02.2012 14:56) [Материал]
qwerto Какая именно ошибка?
Скриншот приветствуется. happy

6 Рикудо   (28.01.2012 00:17) [Материал]
Рикудо у меня почему-то пол весь чёрный, что не так ? facepalm

7 BRESS   (28.01.2012 10:11) [Материал]
BRESS Либо у тебя старенький Game Maker. Поставь версию 8.
Так же можешь попробовать сменить скрипт в событии Create на этот:
d3d_start();
draw_set_color(c_white);
z=15;
pitch=0;

8 Рикудо   (28.01.2012 17:31) [Материал]
Рикудо У меня версия 8 Pro
сейчас попробую код который ты мне дал

9 BRESS   (28.01.2012 19:55) [Материал]
BRESS Ну что? Теперь нормально?

5 Эрик   (15.12.2011 08:32) [Материал]
qwerto согласен, но остальные коды и скрипты окажутся ошибочными

1-10 11-12
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]