Среда, 11 Декабря 2019, 19:03

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [323]
Статьи об общих понятиях связанных с созданием игр.
Программирование [74]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [126]
Статьи о программах для создания игр, уроки и описания.
Софт [28]
Различные программы, в том числе в помощь игроделам.
2D-графика [12]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [11]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [130]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [84]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какие жанры компьютерных игр вы предпочитаете?
Всего ответов: 1856
Главная » Статьи » Создание игр

Платформер-экшен в Scirra Construct для начинающих (часть 6)
В прошлой части мы закончили на создании эффекта «искр» при стрельбе.
Сейчас мы будем создавать врага. Наш враг будет ходить туда-сюда (патрулировать), будет уметь стрелять и перепрыгивать препятствия. Специально для статьи я нарисовал врага (есть анимация прыжка и ходьбы) скачать архив вы можете здесь. Итак приступим. Убедитесь что вы находитесь на слое где находится ГГ. Добавляем спрайт, в редакторе изображений открываем первый кадр ходьбы, обрезаем прозрачную часть (жмём по Crop вверху). Точку "point" (синяя точка) ставим возле дула оружия (из неё будут вылетать пули):



Закрываем редактор. Размер врага сделайте таким чтобы ГГ мог попасть из автомата в врага:



Назовите его Vrag. Врагу, так же как и ГГ нужна основа. Создаём спрайт, заливаем его любым цветом (я залил серым) и настройте размеры основы примерно как сам враг:



Назовите этот спрайт basis_vraga. Основе врага нужно дать поведение Platform (помните как мы давали это поведение основе ГГ). Слева в свойствах основы врага найдите вкладку Behaviors (поведения) нажмите на плюсик и нажмите Add (добавить), откроется окно с поведениями, выберите поведение Platform (кликните два раза). Всё, поведение добавлено:



При запуске игры мы увидим что основа врага слушается нажатии клавиш точно так же как и ГГ, а нам это не нужно. Переходим в редактор событий. Нам нужно сделать так чтобы основа врага всегда игнорировала нажатия клавиш. Условие Всегда (Always) у нас уже есть, создаём действие в условии Всегда, выбираем основу врага, дальше переходим во вкладку Platform:



И там выбираем Set ignoring input:



В следующем окне, в графе Ignore input? Выбираем Start ignoring:



Жмём финиш, результат:



Теперь при запуске игры основа врага не будет реагировать на нажатие клавиш. Теперь давайте добавим остальные кадры анимации ходьбы врага. Кликните по врагу и в правом нижнем углу переходим во вкладку Animator, там где находится первый кадр анимации кликните правой клавишей мыши и выберите Import frames (импортировать кадры), в открывшемся окне выделите все кадры ходьбы кроме первого и нажмите Открыть. В следующем окне нажмите Import. Кадры добавятся, отредактируйте все кадры как первый, точку “point” во всех кадрах поместите возле дула. Удалите первый кадр, переименуйте анимацию в "beg" и установите скорость в 13. Теперь нам нужно сделать так чтобы враг всегда был привязан к основе врага. Переходим в события. В условии Всегда создаём действие, выбираем врага, и дальше Set position to another object (установить позицию на другом объекте):



Дальше в графе Объект выбираем основу врага, а там где написано 0 пускай остаётся 0:



Жмём финиш, результат:



Теперь нужно сделать основу врага невидимой, в свойствах основы поставьте галочку напротив Invisible on start (невидимый при старте), теперь основу у врага не видно в игре. Но получается так что враг чуть ли ни дотрагивается до земли, а должен дотрагиваться только слегка до травы. Просто центр у основы врага передвинте чуть вверх (буквально на несколько пикселей) чем выше вы его передвинете тем выше от земли будет враг. Я думаю координаты центра у основы врага будут нормальными такие: по X- 54, по Y- 52:



Теперь научим врага ходить, для этого нужно добавить основе врага поведение Bullet (пуля). Во вкладке Platform Behaviors у основы врага жмём Add и выбираем поведение Bullet. Скорость установите в 160:



Кликаем по врагу, и внизу свойств поставьте галочку напртив Auto mirror:



Переходим в события, создаём новое событие, выбираем System, дальше Every X Milliseconds (каждые икс миллисекунд) и пишем 8000 (т.е 8 секунд). Должно получиться такое условие:



Создаем действие к этому условию, выбираем объект основа врага, и дальше Set angle (установить угол), в следующем окне в графе Angle пишем basis_vraga.Angle +180:



Мы сделали так чтобы каждые 8 секунд угол основы врага увеличивался на 180 градусов, т.е в игре каждые 8 секунд враг будет поворачиваться в противоположную сторону. Теперь создаём ещё одно действие к недавно созданному событию, выбираем врага (не основу) и выбираем Set angle и дальше пишем Vrag.Angle +180:



Теперь каждые 8 секунд угол и врага и основы врага будет увеличиваться на 180. Теперь кликните один раз по основе врага и в свойствах поставьте галочку после Auto mirror (как и у врага). Поместите основу врага где-то тут:



(Чтобы изменять масштаб в программе зажмите Ctrl и колёсико на себя, от себя). Сейчас при запуске игры враг нормально ходит и поворачивается, а теперь давайте дадим врагу возможность перепрыгивать препятствия. Для начала нужно добавить спрайт этого препятствия, я нарисовал такое:



В редакторе изображений с помощью инструмента Wand tool удалите белые полоски слева и справа (клик по белому → клав. Delete):



Назовите его Prep. У него в свойствах, во вкладке Groups и в под вкладке Attributes поставьте галочку напротив Solid (твёрдый):



Это нужно для того чтобы ни ГГ ни враг не могли проходить сквозь него. Настройте подходящий размер и расставьте его копии примерно так:



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



Исправляем. Кликаем по основе ГГ два раза (откроется редактор изображений) и центр (красная точка) поставьте по координатам X-60, Y-50. Теперь вырежите ГГ (ПКМ (правая кнопка мыши) Cut) и сразу же вставьте (ПКМ, Paste). Теперь сквозь проходит только автомат, думаю так будет нормально. Ну а теперь, наконец-то, научим врага перепрыгивать это препятствие . Нужно добавить спрайт, обычный квадрат, любого цвета (я залил светло-зелёным). Назовите его "Prug". Сделайте его невидимым при старте (в свойствах поставьте галочку напротив Invisible on start). Настройте размеры и расставьте его копии примерно как на скрине:



Т.е, как вы наверно уже поняли, мы ставим копии спрайта там, где хотим чтобы враг прыгнул (будем делать событие "если основа врага дотрагивается до спрайта "Prug" то враг прыгает") При постройке уровня просто ставите копии спрайта в тех местах где хотите что бы враг прыгнул. Переходим к событию. Создаём событие, выбираем основу врага, дальше выбираем On collision with another object (при столкновении с другим объектом), в следующем окне выбираем объект "Prug" жмём финиш, результат:



Создаём действие, выбираем основу врага, дальше переходим во вкладку Platform (вверху окна) и там выбираем Jump (прыжок):



В результате:



При запуске игры мы видим что враг перепрыгивает препятствия, но он делает это как-то не реалистично. Чтобы это выглядело более правдоподобно нужно изменить высоту прыжка и добавить анимацию прыжка. Кликните по основе врага и слева в свойствах поведения Platform, в графе Jump strength пишем подходящую величину (а больше всего подходит 500. ИМХО) (кстати у ГГ изменить высоту прыжка можно точно так же, я изменю на 600):



Согласитесь так выглядит намного лучше, а чтобы выглядело ещё лучше, нужно добавить врагу анимацию прыжка, что мы сейчас и сделаем. Существующею анимацию, т.е анимацию ходьбы назовите "beg". Добавляем новую анимацию (в поле с анимацией бега жмём ПКМ и выбираем Add new animation (добавить новую анимацию). Появится новая анимация, назовите её Jump и снимите галочку с Loop (зацикленный). Добавьте кадры прыжка, отредактируйте их ( обрежьте прозрачный фон (жмите на Crop)) и удалите пустой кадр:



Скорость установите в 10. Переходим в события. Создаём новое событие, выбираем основу врага, и дальше переходим во вкладку Platform, там выбираем Is jumping (при прыжке). Создаём действие, выбираем врага, и дальше Set animation (установить анимацию), и в следующем окне пишем "Jump" (название анимации в кавычках). Мы сделали событие: если основа врага прыгает, то у врага воспроизводится анимация прыжка. Теперь скопируйте это событие и инвертируйте (ПКМ по событию и выбрать Invert condition), а в действии измените название анимации на "beg". Теперь создайте ещё одно новое событие, выберите основу врага, и дальше во вкладке Platform выберите Is falling (при падении), создаём действие, выбираем врага и дальше Set animation, там пишем "Jump". Т.е мы сделали так чтобы и при падении воспроизводилась анимация прыжка. Вот и всё, осталось только научить врага стрелять. Для этого нужно конечно же добавить спрайт пули. Добавляем (просто залейте красным цветом) а центр поставьте в самом начале квадрата. Отредактируйте размер и назовите его pula_vraga:



Дайте пуле врага поведение пули (в свойствах Behaviors → Add → Bullet). Скорость (Speed) пускай будет 450. Как и у ГГ, у врага пули будут вылетать из точки "point". Не забудьте расположить возле дула эти точки в анимации прыжка. Переходим в события. Создаём событие, выбираем System, дальше Every X milleseconds (каждые икс миллисекунд) и пишите 1500 (т.е 1.5 сек). Создаём действие, выбираем врага и дальше Spawn another object. В графе Object выбираем пулю врага, а в графе image point... пишем имя точки, т.е "point":



Результат:



Теперь враг умеет стрелять. Если вам кажется что он стреляет слишком часто, можете просто увеличить значение в событии Every 1500 milliseconds, а если наоборот кажется что стреляет слишком редко, уменьшите значение. Вот исходник того что получилось. Продолжение тут.
Категория: Создание игр | Добавил: dilovar50 (04 Декабря 2012) | Автор: Давлятов Диловар
Просмотров: 7911 | Комментарии: 8 | Рейтинг: 4.6/7 |
Теги: урок, без программирования, экшен, создаем игру, платформер, скирра, начинающим, констракт, Scirra Construct, Статья
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Платформер-экшен в Scirra Construct для начинающих (часть 6)», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 8
+3-
7 Nick_Rimer   (12 Февраля 2013 15:28)
Nick_RimerМатериал отличный! Прекрасно подойдёт любому начинающему, которого ещё день не сожрала окончательно! biggrin
Жаль, что не видел этого урока, когда я только впервые брался за констракт.
Конечно, у меня всегда вызывает нарекание такой момент.. ну почему надо называть спрайты vrag, pula, platforma, patron, iskr и т.п. Учите английский сами и подвигайте к этому остальных! Даже выглядит то же самое лучше: enemy, bullet, platform, ammo, spark etc. Люблю и уважаю удобочитаемость и грамотность представленного материала.
Оценка 5 из 5 и плюсик в репку за развитие молодёжи! (к коей в области игростроя сам пока ещё отношусь happy )

+0-
8 Lasmelan   (07 Февраля 2015 04:21)
LasmelanА мы похожи)) меня тоже это всегда смущало.

+1-
6 dilovar50   (29 Января 2013 22:47)
dilovar50Всем спасибо. На счёт продолжения: когда настроение появится и будет свободное время smile

+1-
5 MIF   (29 Января 2013 15:00)
MIFХорошие уроки! Спасибо автору, а когда будет продолжение?!)))))

+1-
4 Gaydar1996   (19 Декабря 2012 18:43)
Gaydar1996круто hands а урок по созданию стратегий в скирре не планируется?

+1-
3 WhoAmI   (10 Декабря 2012 15:47)
WhoAmIНормальный урок))) smile

+1-
2 fabervox   (09 Декабря 2012 15:30)
Ну ещё чуток и будет готовая игра))

+2-
1 DimOk   (05 Декабря 2012 14:49)
DimOkrespect

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Clickteam Fusion
  • S2 Engine
  • DevelNext
  • Eclipse Wold
  • Skulltag
  • Risen3D
  • Visionaire Studio
  • Gamvas
  • Nuclear Basic
  • Smile Game Builder
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2019 Рейтинг
    www.re-mart.ru