Шарик в 3D пространстве - Разработка игр - Каталог статей - Game Maker
Пятница, 09.12.2016, 14:32
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Файлы и ресурсы
Топ 5 участников
1. BRESS
Репутация: 221
Сообщений на форуме: 3239
2. Gracio001
Репутация: 181
Сообщений на форуме: 1370
3. Xomafok
Репутация: 164
Сообщений на форуме: 947
4. FarEastKmS
Репутация: 125
Сообщений на форуме: 359
5. aHDp
Репутация: 114
Сообщений на форуме: 755
Топ 5 игр
Agent Green 4.6 / 5.0
Wartime 4.3 / 5.0
FeDo 4.0 / 5.0
Adventures: ... 4.0 / 5.0
Secretive ha... 4.0 / 5.0

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

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



На сайте: 3
Гостей: 3
Пользователей: 0
qwerto
Просмотров страницы:
3198

Рейтинг материала:

Другие работы автора:
- -

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

Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации.
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации.
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна.
Войти на сайт

Мини-чат
300

Так как чат открыт для всех, просьба отнестись с уважением к другим посетителям и не писать осознанно посты, оскорбляющие кого-либо, содержащие открытую рекламу/спам. Спасибо за понимание! :)
Опрос
Какого жанра вы предпочитаете делать игры?
Всего ответов: 221
Мы в Вконтакте
Главная » Статьи » Разработка игр

Шарик в 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)
Просмотров: 3198 | Комментарии: 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 а ты кинь ссылку на этот кряк

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