SEO Soluttions

Разработка игры на phaserjs - 6: как работают платформы?

В ходе предыдущего урока мы добавили платформы на нашей игровой сцене:

 
 

Для этого мы добавили много кода в нашу функцию create:

 
 

давайте разберемся за что отвечает этот код:

 
 

Эта инструкция создает новую группу которая отвечает за управление статическими объектами и сохраняет ее в переменную platforms. В Аркадной физике существует два типа физических тел ( объектов ):

  • динамическое - это тело, которое может двигаться с помощью таких сил, как скорость или ускорение. Он может подпрыгивать и сталкиваться с другими объектами, и это столкновение зависит от массы тела и других элементов;
  • статическое - это тело просто имеет позицию и размер, на него не воздействует гравитация, для него нельзя указать скорость и иные характеристики.

Статичные тела, являются статичными по природе. И идеально подходит для площадки и платформ, на которых мы собираемся позволить игроку бегать.

Что такое группы? И зачем они нам нужны?

Как следует из их названия, они позволяют группировать похожие объекты и управлять ими как единым целым. Вы также можете проверить наличие столкновений между группами и другими игровыми объектами.

Группы способны создавать свои собственные игровые объекты с помощью таких полезных вспомогательных функций, как create. Физическая группа автоматически создаст детей с физическими возможностями.

После того как мы создали группу, ее можно использовать для создания платформ:

 
 

Как мы видели ранее, этот код создает следующую сцену:

 
 

Во время предварительной загрузки мы импортировали platform.png изображение. Это простой зеленый прямоугольник размером 400 x 32 пикселей, который будет использоваться для наших основных нужд.

В первой строке кода выше. мы добавляем нашу основную платформу ( "землю" ) размером 400 x 568 (помните, изображения располагаются в зависимости от их центра) - поскольку длинны исходного изображения недостаточно для того что бы разместить ее по всей ширине игровой сцены ( это нужно для того что бы игровой персонаж не выпал с экрана :) ), мы её масштабируем х2 с помощью функции setScale(2). Теперь он размером 800 x 64, что идеально подходит для наших нужд.

Вызов метода refreshBody() необходим для оповещения игрового мира о внесенных изменениях, это необходимо поскольку мы масштабировали статическое физическое тело.

После того как мы разместили на игровой сцене "основную" платформу, мы добавляем вспомогательные платформы на которые сможет запрыгивать наш игровой персонаж:

 
 

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

Заключение

В данном уроке мы поговорили о физике, о том какие объекты бывают и то как их можно разместить на игровой сцене, в следующем уроке мы рассмотрим процесс добавления игрового персонажа на нашу сцену.

Продолжение цикла уроков о разработке простой игры на JavaScript-фреймворке читайте в статье Разработка игры на phaserjs - 7: создание персонажа

О проекте

Блог посвящен созданию и продвижению сайтов в сети интернет, а также различным техническим и маркетинговым вопросам, которые так или иначе с этим связаны.