Пятница, 29.03.2024, 14:29
Главная Регистрация 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
Главная » Статьи » Разработка игр

Шарик в 3D пространстве

Недавно меня спрашивали: "Как сделать 3D от 3-его лица?". Я махом сконструировал небольшой исходник(выложу позже)... Но в процессе его разработки случайно набрел на идею написать урок по созданию несколько абстрактной 3D игры.

И так, что нам толком нужно. Во первых нам нужно три следующих спрайта:
  • (32x32) player_spr - бесполезный спрайт, который нам облегчит планирование карты.
  • (32x32) camera - тоже бесполезный спрайт, но все же сделайте его.
  • (64x64) pl - ну а это единственный спрайт, который будет виден. 
Далее нам нужна текстура пола. Ее следует добавить в папку Backgrounds и назвать по нашему, по русскому - pol Подготовительная часть работы завершена. Приступаем к созданию игры.

Создайте объект obj_cam и добавьте в событие create следующий весьма привычный скрипт:

d3d_start();
draw_set_color(c_white);
z=15; 


Думаю тут все понятно. Кстати, заметили? Я по другому оформил код! Или это никому не интересно? ...  

Ладно, немного юмора еще никому не повредило. Идем дальше. Создайте событие Step и там напишите уже другой скрипт:

direction:=player.direction
x:=player.x+100
y:=player.y-100

Теперь камера будет как бы "выравниваться" в отношении игрока, а так же следовать за ним. 

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

d3d_set_projection(x,y,25,player.x+cos(player.direction*pi/180),player.y-sin(player.direction*pi/180),15,0,0,25)
//пишется на одной строке

Поздравляю! Мы только что завершили наладку камеры! Остался только сам объект игрока. И так, создайте объект player

Сейчас я впервые напишу управление игроком одним скриптом. Это не потому, что я захотел вас помучить и заставить разбираться что мы написали. Просто обычным способом будет долго... В общем кто не поймет - отпишитесь в комментариях, а пока создайте событие Step и впишите следующий простой, но массивный код:

if keyboard_check(ord('W')) then
speed:=5;

if keyboard_check(ord('S')) then
speed:=-5;

if keyboard_check(ord('A'))
direction += 3;

if keyboard_check(ord('D'))
direction -= 3;

if keyboard_check(ord('')) then
speed:=0;

Управление готово! Игрок уже в принципе может бегать... Но не забываем про графику! Сейчас мы нарисуем игрока уже для трехмерного пространства. Для этого создайте событие Draw и в нем введите скрипт:

tex = sprite_get_texture(pl,image_index);
  d3d_draw_wall(x-8,y-8,19,
                x+8,y+8,3,tex,1,1);

Вроде бы все готово... Но тут вам подарочек от фирмы...  Делаем пол для комнаты. Создаем объект my_inf и добавляем событие Draw где пишем следующий код:

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

Ну теперь основная часть готова! Осталось только разместить все объекты в комнате. Сделать вы это можете в принципе сами. Всем пока! Наслаждаемся абстрактной игрой.


Категория: Разработка игр | Добавил: qwerto (21.02.2012)
Просмотров: 4114 | Комментарии: 12 | Рейтинг: 4.5/4
Всего комментариев: 12
12 Саламанда   (04.05.2013 18:08) [Материал]
СУУУУУУУУПУУУУЕЕЕЕЕЕЕЕЕЕЕЕРРРРРРРР!!!!!!!!!!!

11 Некто   (01.05.2013 18:37) [Материал]
А где находится create????

9 Жека   (08.08.2012 16:16) [Материал]
Что такое скрипт

8 tolyan   (10.07.2012 13:52) [Материал]
Хочу попробовать сделать свои шарики как LINES-99 ничего не получается что бы шарик шел за мышкой к другим шарикам и пропадали и набирать очки какой код нужен и скрипт как можно сделать!?

7 миха   (12.06.2012 13:43) [Материал]
миха У меня всё ок,спасибо за урок! biggrin

5 Елисей   (26.04.2012 20:04) [Материал]
пишет:
__________________________________________
ERROR in
action number 1
of Draw Event
for object player:

Error in code at line 1:
tex = sprite_get_texture(pl,image_index);
^
at position 26: Unknown variable pl

6 BRESS   (10.05.2012 10:13) [Материал]
BRESS Я кажется говорил, что нужно создать спрайт pl. У тебя его нету.

1 Demon5880   (26.02.2012 14:18) [Материал]
Demon5880 хм... всё делал как показанно тут, но вот что получилось: у меня игра получилась как вид с верху и игрок ходит от передней камеры в глубь! что за фигня, помогите плиз... буду рад) cry

2 BRESS   (26.02.2012 14:51) [Материал]
BRESS Возможно дело в камере... Ты точно все объекты разместил?
В общем исходник дай, а пока попробуй выявить ошибку на следующем примере: http://gamemaker.ucoz.com/load....-1-0-48

То же самое, только в виде файла.

3 STALKER   (12.03.2012 08:29) [Материал]
STALKER а у меня ошибку дайт вот такую :
ERROR in
action number 1
of Create Event
for object obj_cam:

In script script0:
Error in code at line 1:
d3d_start();
^
at position 1: This function is not available in the Lite Edition.

что за фигню он мне выдаёт?

4 BRESS   (12.03.2012 14:37) [Материал]
BRESS Программа тебе русскими буквами, а вернее английскими пишет:
This function is not available in the Lite Edition

Это означает что ты используешь Game Maker Lite, в которой функция 3D заблокирована. Тебе необходимо скачать кряк для Pro версии и тогда будет все путем. cool

10 IOpaH_72   (17.02.2013 18:36) [Материал]
IOpaH_72 а ты кинь ссылку на этот кряк

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