Создание ТДС - Форум Игроделов
Пт, 01 Авг 2014, 07:43 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Игроделов » GAME MAKER » МАНУАЛЫ И УРОКИ » Создание ТДС
Создание ТДС
ScorpioДата: Вт, 17 Авг 2010, 13:27 | Сообщение # 1
 
Сообщений: 41
Награды: 1
Репутация: 41
Статус: Offline
В последнее время многие стремятся создать свою TDS, и чаще всего для этих целей выбирают Game Maker.
Я решил посвятить свою очередную статью их созданию (часть совпадает с материалом о создании RPG).
Что должно быть в каждой ТДС? Бегающий туда-сюда герой, увешанный оружием, толпа монстров, с которой сражается маленький беззащитный (почти) человек. Но пока

проопишем необходимые переменные.

Code

//начальное оружие
oruzhie='Пистолет'

//какое оружие без патронов
pistolet_patron=100
blaster_patron=0

//нет бластера!
s_blasterom=false

Оно обычно такое: поворот с помощью мышки, бегаем на стрелочках/WASD. Чтобы герой мог ходить по диагонали, бег сделаем с помощью прыжков в определенные

координаты. Вот так:

Code

if keyboard_check(vk_right) {x+=4}
if keyboard_check(vk_left) {x-=4}
if keyboard_check(vk_up) {y-=4}
if keyboard_check(vk_down) {y+=4}

Поворачивание за мышкой легко сделать с помощью команды, определяющей направление по отношению к координатам мышки:

Code
image_angle=point_direction(hero.x,hero.y,mouse_x,mouse_y)

Чтобы все было красиво, необходимо центрировать спрайт героя!
Все, движение героя есть. Радуемся и переходим к стрельбе по монстрам.
В Create героя поместите:

Code
babah=15 //это необходимо для перезарядки

В Step героя:
Code
babah-=1

Создайте объект пули (еще нарисуйте, естественно, саму пулю). В событии глобального нажатия левой кнопки мышки (Global Left Button) пропишите создание пули

в координатах героя:

Code

if babah<=0
{if oruzhie='Пистолет' and pistolet_patron>0 or oruzhie='Бластер' and blaster_patron>0
{instance_create(x,y,pulya) if oruzhie='Пистолет' {pistolet_patron-=1 babah=15} if oruzhie='Бластер' {blaster_patron-=1 babah=30}} }

А у пули в Create:

Code
move_towards_point(mouse_x,mouse_y,25)

Теперь получилось, что герой стреляет. Не из дула, а из своей середины - но, благодаря высокой скорости пули, это незаметно.
Стрельба есть, но врагов нет. Непорядок! Создайте объект какого-нибудь чудовища и перетащите ему в Step кнопку Step Towards Point (координаты - hero.x,hero.y. Также выберите solid и включите solid самому монстру - чтобы обходил препятствия и таких же, как он сам).

Теперь монстру в Create:

Code
heal=100 //это его здоровье

В столкновении героя с монстром напишите

Code
health-=1

А в столкновении монстра с пулей:

Code

if hero.oruzhie='Пистолет'heal-=20 // можно больше, для скоростного и кровавого геймплея
if hero.oruzhie='Бластер'heal-=60

В Step монстра:

Code
if heal<=0 {instance_change(trup,1)}

И создайте объект трупа врага и спрайт этого трупа.
Сам герой умереть тоже должен, пишем ему в Step что-то подобное:
Code
if health<=0 {game_end() show_message('Ты сдох, чувак!' )}

Основная часть позади! Но надо еще сделать постоянное нападение врагов и смену оружия.
Сначала враги. Посмотрите на своей игровой карте точки, из которых могли бы выходить монстры (желательно за пределами карты и штуки три), создаем объект без спрайта и пишем ему в Create

Code
Alarm[0]=30 //можно меньше

А в событии Alarm 0:
Code

instance_create(координаты вашей первой точки,monstr)
instance_create(координаты вашей второй точки,monstr)
instance_create(координаты вашей третьей точки,monstr)
alarm[0]=30

Теперь монстры постоянно идут из тех точек.
Дальше оружие.
Создаем объект blaster. В столкновении героя с бластером поместим:

Code
blaster_patron+=20 //патроны нашли
s_blasterom=true //у нас он есть
oruzhie='Бластер' //автоматически оружие меняется на бластер, для удобства

Создаем объект пистолета и пишем в столкновении героя с ним примерно так:

Code
pistolet_patron+=40

И, наконец, смена оружия. У героя в нажатии цифры 1:
Code
oruzhie='Пистолет'

А в нажатии 2:
Code
if s_blasterom=true {oruzhie='Бластер'}

Вот и все - простенькая TDS создана!

Выкладываю также исходник этого примера - http://depositfiles.com/ru/files/8oy6xpns1

 
СообщениеВ последнее время многие стремятся создать свою TDS, и чаще всего для этих целей выбирают Game Maker.
Я решил посвятить свою очередную статью их созданию (часть совпадает с материалом о создании RPG).
Что должно быть в каждой ТДС? Бегающий туда-сюда герой, увешанный оружием, толпа монстров, с которой сражается маленький беззащитный (почти) человек. Но пока

проопишем необходимые переменные.

Code

//начальное оружие
oruzhie='Пистолет'

//какое оружие без патронов
pistolet_patron=100
blaster_patron=0

//нет бластера!
s_blasterom=false

Оно обычно такое: поворот с помощью мышки, бегаем на стрелочках/WASD. Чтобы герой мог ходить по диагонали, бег сделаем с помощью прыжков в определенные

координаты. Вот так:

Code

if keyboard_check(vk_right) {x+=4}
if keyboard_check(vk_left) {x-=4}
if keyboard_check(vk_up) {y-=4}
if keyboard_check(vk_down) {y+=4}

Поворачивание за мышкой легко сделать с помощью команды, определяющей направление по отношению к координатам мышки:

Code
image_angle=point_direction(hero.x,hero.y,mouse_x,mouse_y)

Чтобы все было красиво, необходимо центрировать спрайт героя!
Все, движение героя есть. Радуемся и переходим к стрельбе по монстрам.
В Create героя поместите:

Code
babah=15 //это необходимо для перезарядки

В Step героя:
Code
babah-=1

Создайте объект пули (еще нарисуйте, естественно, саму пулю). В событии глобального нажатия левой кнопки мышки (Global Left Button) пропишите создание пули

в координатах героя:

Code

if babah<=0
{if oruzhie='Пистолет' and pistolet_patron>0 or oruzhie='Бластер' and blaster_patron>0
{instance_create(x,y,pulya) if oruzhie='Пистолет' {pistolet_patron-=1 babah=15} if oruzhie='Бластер' {blaster_patron-=1 babah=30}} }

А у пули в Create:

Code
move_towards_point(mouse_x,mouse_y,25)

Теперь получилось, что герой стреляет. Не из дула, а из своей середины - но, благодаря высокой скорости пули, это незаметно.
Стрельба есть, но врагов нет. Непорядок! Создайте объект какого-нибудь чудовища и перетащите ему в Step кнопку Step Towards Point (координаты - hero.x,hero.y. Также выберите solid и включите solid самому монстру - чтобы обходил препятствия и таких же, как он сам).

Теперь монстру в Create:

Code
heal=100 //это его здоровье

В столкновении героя с монстром напишите

Code
health-=1

А в столкновении монстра с пулей:

Code

if hero.oruzhie='Пистолет'heal-=20 // можно больше, для скоростного и кровавого геймплея
if hero.oruzhie='Бластер'heal-=60

В Step монстра:

Code
if heal<=0 {instance_change(trup,1)}

И создайте объект трупа врага и спрайт этого трупа.
Сам герой умереть тоже должен, пишем ему в Step что-то подобное:
Code
if health<=0 {game_end() show_message('Ты сдох, чувак!' )}

Основная часть позади! Но надо еще сделать постоянное нападение врагов и смену оружия.
Сначала враги. Посмотрите на своей игровой карте точки, из которых могли бы выходить монстры (желательно за пределами карты и штуки три), создаем объект без спрайта и пишем ему в Create

Code
Alarm[0]=30 //можно меньше

А в событии Alarm 0:
Code

instance_create(координаты вашей первой точки,monstr)
instance_create(координаты вашей второй точки,monstr)
instance_create(координаты вашей третьей точки,monstr)
alarm[0]=30

Теперь монстры постоянно идут из тех точек.
Дальше оружие.
Создаем объект blaster. В столкновении героя с бластером поместим:

Code
blaster_patron+=20 //патроны нашли
s_blasterom=true //у нас он есть
oruzhie='Бластер' //автоматически оружие меняется на бластер, для удобства

Создаем объект пистолета и пишем в столкновении героя с ним примерно так:

Code
pistolet_patron+=40

И, наконец, смена оружия. У героя в нажатии цифры 1:
Code
oruzhie='Пистолет'

А в нажатии 2:
Code
if s_blasterom=true {oruzhie='Бластер'}

Вот и все - простенькая TDS создана!

Выкладываю также исходник этого примера - http://depositfiles.com/ru/files/8oy6xpns1


Автор - Scorpio
Дата добавления - 17 Авг 2010 в 13:27
snake78Дата: Вт, 14 Дек 2010, 07:10 | Сообщение # 2
Нет аватара
 
Сообщений: 56
Награды: 0
Репутация: 0
Статус: Offline
А как сделать шоб они прекратили идти через некоторое время?
Quote (Scorpio)
instance_create(координаты вашей первой точки,monstr) instance_create(координаты вашей второй точки,monstr) instance_create(координаты вашей третьей точки,monstr) alarm[0]=30
 
СообщениеА как сделать шоб они прекратили идти через некоторое время?
Quote (Scorpio)
instance_create(координаты вашей первой точки,monstr) instance_create(координаты вашей второй точки,monstr) instance_create(координаты вашей третьей точки,monstr) alarm[0]=30

Автор - snake78
Дата добавления - 14 Дек 2010 в 07:10
Yuong_igrodelДата: Пт, 29 Мар 2013, 09:44 | Сообщение # 3
 
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
Scorpio а как сделать чтобы враги стреляли из-за определенного расстояния ? Пожалуйста дай пример буду благодарен smile
 
СообщениеScorpio а как сделать чтобы враги стреляли из-за определенного расстояния ? Пожалуйста дай пример буду благодарен smile

Автор - Yuong_igrodel
Дата добавления - 29 Мар 2013 в 09:44
Форум Игроделов » GAME MAKER » МАНУАЛЫ И УРОКИ » Создание ТДС
Страница 1 из 11
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2014
Бесплатный конструктор сайтов - uCoz