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

Разработка TDS шутера (Часть 1)

Наверно каждый прослышал о такой игре, как Counter Strike 2D и уже пытается сделать что-то подобное в Game Maker. В этом я больше чем уверен. Но если Ваши попытки разработки подобного шутера не увенчались успехом или просто хочется посмотреть, как это делают другие, то добро пожаловать на урок!

Цель.

И так. В этой статье мы обязательно создадим игрока, научим его стрелять. Помимо этого я впервые уделю большое внимание  графике по некоторым просьбам, что собственно и растягивает данный урок на несколько. Конкретно эта графика касается пуль и освещения. Ну ладно, не буду вас томить, приступим.


Спрайты и текстуры.

Первое что вам следует сделать, так это скачать специальный пак спрайтов, составленный мною. Если вы хотите сделать эти картинки самостоятельно, но пожалуйста! Я не настаиваю. 

Скачать

После того, как вы скачали данный выше пак, следует создать соответствующие спрайты и фоны. К сожалению данный мной архив не полон, поэтому у вас должно выйти 5 спрайтов и один фон.


Спрайты:

bull – пуля. Состоит из двух изображений(1 картинка-пуля, 2 картинка-«след» пули)

player_spr – игрок.

enemy_spr – противник(в данном уроке не используется).

wall_spr  - стена.

fonar_spr – спрайт фонаря.


Фоны:

light – свет фонаря.



Что бы в будущем оружие игроков не застревало в стенках, следует подкорректировать маску. Для этого откройте спрайт player_spr. В окне редактора поставьте центр вращения на голову.



Далее мы впервые попробуем подкорректировать маску. Для этого щелкните по кнопке Изменить Маску(Edit Mask). В появившемся окне щелкаем по флажку Диск, чтобы оружие не входило в маску. Если пушка все же попала в этот затемненный овал, то попробуйте поиграться с параметрами, дабы исправить ошибку. Подобные операции повторите со спрайтом enemy_spr.



Переходим к работе со спрайтом bull. Как вы уже догадались(или попросту прочитали), данное изображение, ничто иное, как пуля. Спрайт bull должен состоять из двух изображений: пуля и след(свечение) пули. Зачем нам это, я скажу позже. Единственное, не забудьте разместить центр вращение четко по середине спрайта.



Остальные незначительные спрайты, я отдаю под ваш контроль. А пока проговорим о рисовании фона light. Он должен быть размера 64x64 и желательно полупрозрачным. Цвет этого фона выбирайте по желанию, но я советую применять желтый (более похоже на свет уличного фонаря).


Создание объектов.

После такой долгой и муторной подготовки, вы наверно уже поняли, что данный урок будет значительно сложнее, а главное длиннее предыдущих. Мне хотелось бы сделать небольшую паузу и раскрыть вам все карты. И так, данный урок в отличии от других будет описывать весь процесс создания шутера в виде Counter-Strike 2D. Идея написания подобной статьи назревала долго, ведь TDS – это все же «классика Game Maker». Поэтому я попытаюсь оснастить этот урок не только кодами и блоками, но и различными «фишками». Не отрицаю, что нам, возможно,  нам предстоит сражаться в этой игре не с ботами, а с вполне реальными людьми. В общем, из этой маленькой лирической паузы вы наверно поняли всю суть этого урока.


Продолжаем разработку шутера. Создайте объект player и по логике вещей присвойте ему спрайт player_spr. Дальше создайте событие Step и впишите скрипт:


direction=point_direction(x,y,mouse_x,mouse_y)

image_angle=direction


Этот простенький код изменяет направление игрока по мышке и соответственно поворачивает спрайт. Думаю тут нечего зацикливаться, продолжим по списку.


Добавьте событие Press S-key и событие Press W-key. В событие Press W-key вставьте скрипт:

speed=4

Такой же скрипт вставьте в событие Press S-key, только смените число 4 на отрицательное:

speed=-4

В событии no-key введите код обнуляющий скорость:

speed=0

Хорошо. Первая стадия закончена. Перейдем к созданию прочих объектов, взаимодействующих с игроком. Первый объект на очереди будет wall_inf. Для этого объекта не нужно присваивать спрайт, только щелкните по свойству Твердость(solid).

Ну а для объекта wall спрайт нужен. Как вы уже догадались таковым изображением будет wall_spr. В свойствах объекта щелкните по значению Твердость и назначьте родителя: wall_inf.

Теперь создадим объект пули: obj_bullet. В событие Draw для этого объекта напишите скрипт, имитирующий скорость пули:


draw_sprite(sprite_index,0,x,y)

draw_sprite(sprite_index,1,x-hspeed,y-vspeed)

draw_sprite(sprite_index,1,x-2*hspeed,y-2*vspeed)

draw_sprite(sprite_index,1,x-3*hspeed,y-3*vspeed)


Данный скрипт будет рисовать как бы тень для нашего «боеприпаса». Кстати, чтобы этот самый патрон не выглядел глупо выстреливая немного ниже или выше оружия поставьте глубину на значение 100. Такой способ мы применяем впервые, поэтому считаю что вам нужно объяснить что это за глубина. Дело в том, что каждый объект расположен на каком-то слои (как в Фотошопе), и эти слои могут накладываться друг на друга. Поэтому если какой-то «субъект» торчит на слое выше, то он и будет видней.

 

Теперь создайте объект fonar_obj и присвойте ему спрайт фонаря. В событие Draw наберите скрипт:

draw_background(light,x-64,y-64)

draw_sprite(sprite_index,0,x,y)

Все дополнительные объекты готовы, снова возвращаемся к игроку (объект player). Создайте событие Столкновение с wall_inf и перенесите действие Bounce(). Дальше создадим событие Global Left pressed и перенесите действие Create Moving. В появившемся окне забейте значение x=x, y=y, speed=7, direction=direction.

Все готово! Теперь можете расставлять объекты в комнате! Для корректного отображения света ставьте объект fonar_obj в последнюю очередь. Удачи! Дожидайтесь следующего урока!


Категория: Разработка игр | Добавил: qwerto (14.03.2012)
Просмотров: 9805 | Комментарии: 10 | Рейтинг: 4.0/6
Всего комментариев: 10
9 Игорь   (01.07.2012 16:42) [Материал]
Подскажите пожалуйста, у меня пули вылетают строго в право и строго по горизонтали, хотя курсор в другом месте . Как сделать так что бы стрелять туда где курсор?

10 BRESS   (02.08.2012 12:36) [Материал]
BRESS Ты точно используешь событие Create Moving?

8 ppc_man   (11.04.2012 22:56) [Материал]
ppc_man Классно!

7 BRESS   (08.04.2012 20:14) [Материал]
BRESS Внимательней надо быть:
http://gamemaker.ucoz.com/publ/2-1-0-43

6 norby   (07.04.2012 22:02) [Материал]
norby дайте второй урок плиз!! cry

5 Андрей   (07.04.2012 21:51) [Материал]
А второй урок есть?

4 никита   (27.03.2012 12:51) [Материал]
никита BRESS, ты забыл написать чтобы фонари освещали комнату.И пули удалялись(или отскакивали)в столкновении со стеной.

3 qwerto   (15.03.2012 19:43) [Материал]
qwerto В следующей части хотел бы увидеть, как сделать ботов, и возможно как их учить...

1 qwerto   (15.03.2012 14:03) [Материал]
qwerto Очень интереснно, у меня кстати был подобный проект, он в начале всех файлов.

2 BRESS   (15.03.2012 19:30) [Материал]
BRESS Эта статья отличается от всех необычной идеей динамического освещения. Как видишь по скриншоту, способ вполне работает smile

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