Клон игры Астероид, использующий менее 100 событий.

2

Index

Tagged

Stats

12,982 visits, 25,708 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 5 Jul, 2017. Last updated 25 Feb, 2019

A - Основная механика

+Использование поведений (Behaviors) : Перемещение (Custom movement), "Бесконечное игровое поле" (Wrap), Стремление к объекту (Pin), Пуля (Bullet), Убрать за пределами игровой области (Destroy outside of layout), Вращение (Rotate); Используемые плагины: (Plugins used : System, Sprite, Keyboard).

Для этого урока я использовал Ashley's "Custom movement (asteroids).capx" в папке «examples», которая находится в папке, где вы установили C2.

Вы можете заметить, что если вы еще не открыли его, папка «examples» содержит довольно много проектов, показывающих, как настраивать проекты и выполнять несколько конкретных «обычных» «игровых действий».

С 5-ю событиями корабль игрока custom movement и wrap ведет себя так, как нам надо.

Стрелки на клавиатуре (плагин "Keyboard" был добавлен к проекту) перемещают корабль по полю игры, а "ПРОБЕЛ" выстреливает "Bullet" объектами.

Это основное.

Откройте *.capx финального проекта (который вы можете скачать в the final project's page in the Arcade). Вы можете видеть, что здесь гораздо больше кода и элементов по сравнению с исходным примером.

Есть три макета (layout). Каждый макет (layout) имеет прикрепленный к нему лист событий (каждый лист событий имеет имя с префиксом «es», а затем имя макета (layout), к которому он привязан; это сделано мной для удобства, чтобы знать, где я нахожусь во время программирования, и какой лист событий связано с каким макетом).

Splash: заставка/индикатор загрузки/макет

Score: отображение и сравнение счета после Splash and Game

Game: все, что и как происходит в игре

1 - Настройка и управление кораблем

Вы можете найти события исходного примера в группе «PlayerMovement» в «esGame». (Событие 2)

В конечном проекте вы можете видеть, что движений больше, чем в исходном примере.

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

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

Поэтому я использовал небольшой трюк.

Пламя на "корме" корабля и спереди - это два разных спрайта.

Анимация взята из папки "FX" в Scirra's free bundle.

Еще раз обратитесь к Beginner's guide to Construct 2, чтобы узнать, как создать новый спрайт и импортировать текстуры в него.

Вы можете открыть макет «Game» и посмотреть, что они представляют собой пять отдельных элементов (четыре голубых - тормозные, оранжевый - ускоритель), расположенных на том же слое, что и корабль, но под ним.

Каждый спрайт («Thrust» и «Brakes») настроен на отображение циклической анимации (серия кадров, которые повторяются).

Спрайты («Thrust» и «Brakes») используют "Pin" поведение и имеют свойство "Initial visibility", установленное на "Invisible".

Поскольку я правильно разместил эти спрайты в layout view, все, что мне нужно сделать "On start of layout" (Событие 1 в esGame), - это привязать эти спрайты к кораблю. Тогда мне не придется беспокоиться о размещении их, они будут всегда привязаны к кораблю игрока в правильном положении.

Для крутого «visual fx» в этом случае более чем достаточно.

«Тормоза» («Brakes») имеют четыре instances одного и того же спрайта, поскольку это одна и та же анимация, и когда я устанавливаю, чтобы спрайт был видимым или невидимым, это коснется и остальных.

Вернувшись к группе «PlayerMovement», вы заметите, что когда клавиша «UP» опущена (событие 3) (до тех пор, пока она удерживается), спрайт «Thrust» настроен на видимость. Таким образом, его анимация, естественно, проигрывается, даже не требуя никаких действий.

Событие 5, когда клавиша «UP» отпущена, спрайт возвращается к невидимому состоянию.

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

Та же логика применяется к клавише «ВНИЗ». Вместо «Thrust» мы фокусируемся на спрайтах «Тормоза» («Brakes»), и, как упоминалось ранее, оба экземпляра спрайта меняются одновременно.

Чтобы закончить управление кораблем, нажатие (именно таким образом, нажав и отпустив, нажав и отпустив), клавиша «Пробел» производит выстрел «Bullet».

«Пуля» просто "Bullet" поведение («Behavior»).

It contains also a "Destroy outside of layout" behavior to keep the object count down (it prevents that "Bullets" that went out of screen don't just stay in memory as long as the game executes which could result into resources wasting).

It also does have a "strategic"/game play impact as you can't just shoot in continuity, hoping that bullets will wrap and finally hit an asteroid "by luck".

Once more, the emphasis is put on the fact that the player is to hit asteroids, not just shoot "randomly".

As first step for the score system, notice that a global variable "Score" is set and will hold the score for the current game being played.

  • 0 Comments

Want to leave a comment? Login or Register an account!