Создать игру, создание игр, конструктора игр, игровые движки, разработка игр, сделать игру
Приветствую Вас Гость · Вход · Регистрация  ·  Новые сообщения · Участники · Правила · Поиск · RSS
  • Страница 1 из 1
  • 1
[Статья] Создаем дополнительное оружие
Loko™ Дата: Суббота, 17.11.2012, 15:13 | Сообщение # 1
Просмотр профиля: Loko™

Сообщений: [146]


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

Что мы будем делать:
Герой, который изначально не имеет никакого дополнительного оружия, может подбирать топоры и кинжалы, которые можно метать: кинжалы летят прямо, а топоры – подбрасываются вверх и, под силой тяжести, падают, летя по дуге.
Также мы дадим ограничение на количество бросков, которое можно увеличить, подбирая еще топоры или кинжалы. И еще сделаем так, что иметь можно что-то одно: либо топоры, либо кинжалы.

Приступим
Создаем героя с поведением "Platform". Назначьте ему основные команды, такие как "поворот налево", "поворот направо". Если вы не знаете, как это делается, прочитайте статью "Создание 2D платформера а-ля Ghost Quest".

Добавим поддержку клавиатуры и мыши:
Insert an object – Moues & Keyboard

Создадим спрайт кинжала:
Insert an object – Sprite – рисуем кинжал – сохраняем
Переименуйте только что созданный спрайт в itemKnife. Это будут "патроны" для кинжала. Расставьте их по уровню в нужных местах.

Склонируем спрайт кинжала:
Выделяем itemKnife – правая кнопка мыши – Copy – щелкаем правой кнопкой мыши на пустом месте на уровне – Paste Clone
Переименуйте только что склонированный спрайт в Knife. Это будет кинжал, который герой сможет кидать по прямой.

Дадим ему поведение пули:
Выделяем спрайт Knife – Properties – Behaviors – Add – Bullet – Insert
Чтобы увеличить скорость броска, измените значение в поле Speed на 500.

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

Добавим новый объект:
Insert an object – Text

Переименуйте только что созданный спрайт в weapon.
Настройки размера шрифта, его цвета, жирности и курсива настраиваются в окне Properties – Properties.

Дадим тексту две новые переменные:
Выделяем спрайт weapon – Private variables – Add/Edit – зеленый плюс – в поле Name пишем numWeapon – OK – зеленый плюс – в поле Name пишем arsenal – OK – Done

Переходим в редактор событии (Event Sheet Editor)
Сперва зададим объекту "текст" отображение текущего числа "патронов":

Событие:
Insert event – System – Always

Действие:
New action – weapon – Set text – в поле Text пишем weapon.Value("numWeapon") – Finish



В событии мы поставили условие "всегда" (чтобы текст всегда отображал нужное значение).
В действии мы сказали тексту, что нужно показывать. Если рассмотреть строчку:
weapon.Value("numWeapon")
то weapon – это объект, значение которого нужно отображать (т.к. нужное значение у нас находится в объекте weapon в виде переменной); numWeapon – это имя переменной в кавычках, содержание которой должно быть отображено.

Сделаем взятие кинжала и пополнение числа "патронов":

Событие:
Insert event – bazis – On collision with another object – Pick an object – itemKnife – Finish

Действия:
1. New action – itemKnife – Destroy
2. New action – weapon – Set value – Arsenal, Value = 2 – Finish
3. New action – weapon – Add to value – numWeapon, Value = 10 – Finish



Событие: при соприкосновении героя с кинжалом.
Действие 1: кинжал уничтожается.
Действие 2: переменная arsenal меняет значение на 2 (1 – это будут топоры, 2 – кинжалы).
Действие 3: добавляется 10 единиц кинжалов.

Реализуем бросок кинжала:

События:
1. Insert event – MouseKeyboard – On key pressed – C (это клавиша, на которую будет бросок кинжала) – Finish
2. Insert event – weapon – Compare private variable – arsenal, Equal to, Value = 2 – Finish
3. Insert event – weapon – Compare private variable – numWeapon, Greater than, Value = 0 – Finish

Действия:
1. New action – bazis (это герой, выберите своего) – Spawn another object – Pick an object – Kinfe – не забывайте поставить нужный слой в поле Layer – Finish
2. New action – weapon – Subtract from value – numWeapon, Value = 1 – Finish



В событии №1 мы установили клавишу броска.
Во втором событии сделали проверку на то, какое у нас сейчас есть оружие (1 – топоры, 2 – кинжалы).
В третьем событии мы проверили наличие "патронов".
В действии №1 мы сделали бросок кинжала.
В действии №2 мы вычли единицу из общего количества "патронов".

Можно запустить уровень и проверить на работоспособность. Сперва при нажатии на клавишу C ничего не происходит, подбираем itemKnife, текст изменяется с 0 до 10, по нажатию на клавишу C – герой бросает кинжалы.

Теперь разберемся с топорами.
Для начала их нужно нарисовать. Переходим в редактор уровней (Layout Editor).
Insert an object – Sprite – рисуем топор – сохраняем
Переименуйте только что нарисованный спрайт в itemAxe. Это "патроны" для топора, расставьте их по уровню в нужных местах.

Сделайте клон спрайта:
Выделяем itemKnife – Copy – на пустом месте правой кнопкой мыши – Paste Clone
Переименуйте только что склонированный спрайт в Axe. А вот это уже наш боевой топор.

Добавим объекту Axe поведение Ball:
Выделяем Axe – Properties – Behaviors – Add – Ball – Insert
Измените следующие поля:
Speed – 666
Max Speed – 777
Acceleration – 45
Gravity – 1444
Снимите галочки с Bounce friction, Rotate Object и Bounce off Solid



Добавим объекту Axe еще одно поведение под названием Rotate (Вращение):
Выделяем Axe – Properties – Behaviors – Add – Rotate – Insert
Слегка подкорректируем значение Speed на 555.



Переходим в редактор событий (Event Sheet Editor)
Первым делом сделаем подбор топора:

Событие:
Insert event – bazis – On collision with another object – Pick an object – itemAxe - Finish

Действия:
1. New action – itemAxe – Destroy
2. New action – weapon – Set value – Arsenal, Value = 1 – Finish
3. New action – weapon – Add to value – numWeapon, Value = 10 – Finish



Событие: при соприкосновении героя с топором.
Действие 1: топор уничтожается.
Действие 2: переменная arsenal меняет значение на 1 (1 – топоры, 2 – кинжалы).
Действие 3: добавляется 10 топоров.

Бросок топора будет разбит на два события. Первое – для броска влево, второе – для броска вправо.
Делаем:

События:
1. Insert event – MouseKeyboard – On key pressed – C (это клавиша броска топора) – Finish
2. Insert event – bazis – Compare angle – Equal to, Angel = 0 – Finish
3. Insert event – weapon – Compare private variable – arsenal, Equal to, Value = 1 – Finish
4. Insert event – weapon – Compare private variable – numWeapon, Greater than, Value = 0 – Finish

Действия:
1. New action – bazis – Spawn another object – Pick an object – Axe – не забываем указать нужный слой в поле Layer – Finish
2. New action – Axe – переходим во вкладку Ball – Set angle of motion – указываем значение 285 – Finish
3. New action – weapon – Subtract from value – numWeapon, Value = 1 – Finish



Событие 1 – указываем клавишу броска
Событие 2 – получаем угол героя (в какую сторону он смотрит, 0 – это направо)
Событие 3 – проверяем, какое оружие сейчас имеет герой (1 – топоры, 2 – кинжалы)
Событие 4 – проверяем наличие "патронов"
Действие 1 – бросаем топор
Действие 2 – устанавливаем угол броска топора (285 – вверх и вправо)
Действие 3 – вычитаем одну единицу из "патронов".

Бросок вправо настроен, теперь сделаем почти тоже самое, но для левой стороны:

События:
1. Insert event – MouseKeyboard – On key pressed – C (это клавиша броска топора) – Finish
2. Insert event – bazis – Compare angle – Equal to, Angel = 180 – Finish
3. Insert event – weapon – Compare private variable – arsenal, Equal to, Value = 1 – Finish
4. Insert event – weapon – Compare private variable – numWeapon, Greater than, Value = 0 – Finish

Действия:
1. New action – bazis – Spawn another object – Pick an object – Axe – не забываем указать нужный слой в поле Layer – Finish
2. New action – Axe – переходим во вкладку Ball – Set angle of motion – указываем значение 255 – Finish
3. New action – weapon – Subtract from value – numWeapon, Value = 1 – Finish



Событие 1 – указываем клавишу броска
Событие 2 – получаем угол героя (в какую сторону он смотрит, 180 – это налево)
Событие 3 – проверяем, какое оружие сейчас имеет герой (1 – топоры, 2 – кинжалы)
Событие 4 – проверяем наличие "патронов"
Действие 1 – бросаем топор
Действие 2 – устанавливаем угол броска топора (255 – вверх и влево)
Действие 3 – вычитаем одну единицу из "патронов".

Вот и все готово. Проверяем.
Жду ваших комментариев. С вами был Loko™, пока!


Сообщение отредактировал: Loko™ - Вторник, 20.11.2012, 13:23
ZiP Дата: Суббота, 17.11.2012, 15:21 | Сообщение # 2
( περιμετρ )
Просмотр профиля: ZiP

Сообщений: [887]
Quote (Loko™)
Вот и все готово. Проверяем.

Ща проверю. smile


☼Настройка профиля|↕Написать жалобу на пользователя|▲Правила сайта|░мои темы
BSC Hard|Death Jeep|WSC B&W|Моб.платформер|BSC Hard 2|Последняя Миссия|Christmas Story
░▒▓ Z7NV ▓▒░
Loko™ Дата: Суббота, 17.11.2012, 15:27 | Сообщение # 3
Просмотр профиля: Loko™

Сообщений: [146]
АБВ[ZiP], жду biggrin
ZiP Дата: Суббота, 17.11.2012, 17:39 | Сообщение # 4
( περιμετρ )
Просмотр профиля: ZiP

Сообщений: [887]
Долго будешь ждать. biggrin
Loko™ Дата: Суббота, 17.11.2012, 21:07 | Сообщение # 5
Просмотр профиля: Loko™

Сообщений: [146]
АБВ[ZiP], у меня тоже проблемы с художеством, на него у меня уходит около 80% всего действия. Эх...умел бы рисовать, клепал бы игры налево и направо.
ZiP Дата: Суббота, 17.11.2012, 21:51 | Сообщение # 6
( περιμετρ )
Просмотр профиля: ZiP

Сообщений: [887]
  • Страница 1 из 1
  • 1
Поиск:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2024 Хостинг от uCoz
Топ Разработка игр