Блог ☯

суббота, 18 марта 2017 г.

Игры с акселерометром для Андроид - как такую сделать в game maker

Акселерометр - это прибор, измеряющий проекцию ускорения. Так-же в играх используется гироскоп, он измеряет и реагирует на изменение угла устройства. Так вот, почти во все современные девайсы (смартфоны, планшеты) уже встроены эти два устройства.

В частности они нужны например для определения ориентации экрана (портретная, горизонтальная). В зависимости от угла наклона меняется и ориентация экрана.

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

Игры с акселерометром для Андроид - как такую сделать в game maker

Один из примеров такой игры 

Самое смешное что все эти функции в гейм мейкер (game maker) - очень простые и использовать их может кто угодно, однако не многие на это решаются. Обычно считается что управление наклоном нужно и круто только для гонок в 3D или подобных игр, однако вы можете делать не только такие игры с этой системой управления.

Еще давным давно я делал аркаду в космосе, где я это реализовал.

Там в опциях есть такая штука - tilt (наклон). Если вы это включите, корабль будет летать куда вы наклоняете телефон, даже жать не надо на экран для игры.


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

Как сделать управление наклоном девайса (смартфона, планшета) в гейм мейкер?

В справке game maker ищите "tilt" (наклон), вам нужны функции:

  • device_get_tilt_x()
  • device_get_tilt_y()

Еще может пригодиться:

  • display_get_orientation()

Ориентация дисплея бывает:

  • display_portrait - портретная (вертикальная)
  • display_landscape - ландшафтная, пейзажная (горизонтальная)

Код мы можем записать например вот так: (В моей игре про космос)

if global.phone_control=1 
if display_get_orientation() = display_portrait{
if device_get_tilt_x()<0 then x+=global.hero_speed
if device_get_tilt_x()>0 then x-=global.hero_speed
if x<0 then x=50
if x>600 then x=550

Синим, первая часть кода, проверяет текущую систему управления. Допустим у меня там:

  • 1 - Управление наклоном телефона
  • 2 - Управление пальцем, сенсорное. Куда вы тыкайте, туда он и летит, по Х

Игры с акселерометром для Андроид - как такую сделать в game maker

Схематично, стандартное управление в таких играх - сенсорное

О том, как сделать простое сенсорное управление вы можете узнать в моём прошлом уроке:


В справке гейм мейкер, посмотрите вот сюда:

Игры с акселерометром для Андроид - как такую сделать в game maker

Вот тут вроде-бы всё понятно. При чём, есть не только X и Y, есть еще и Z.

Но лучше пока не пудрите себе мозги с Z, однако тут тоже можно сделать кое-что крутое. Z - это отклонение телефона назад-вперёд (при портретной ориентации). Вообще - сейчас мы смотрим на картинку справа, для нашего примера. Нам тут Y не нужен.

С Z можно сделать например:

  • Телефон на себя (верхней частью) - выпускаем ракеты. 
  • Телефон от себя (верхней частью) - включаем щит. 

Ну это же будет охуенно! Не удержался, уж извините. Сейчас жалею что я так не сделал.

Это очень интуитивное управление, при чём такого сейчас делают не так уж и много.

Вторая и основная часть кода, красным - проверяем куда есть наклон, туда и летим.

Скорость - глобальная переменная. У меня она зависит от оборудования и прокачки.

Третья и последняя часть кода - просто что-бы корабль за экран не вылезал.

Вот на самом деле и всё! Я еще давно делал короткое видео где даже пошёл в туалет и снял (держа в руках планшет... Это было извращение) как конкретно это выглядит.





Хотя вы можете просто скачать мою игру про космос - Space Rush. Если там не найдёте APK, на Google Play вроде даже еще валяется она:


Кстати я для неё даже обновление делал и это одна из немногих игр которую гугл плей меня не заставил убрать с маркета. Скачивайте, оценивайте её там. Может быть сделаю новую версию даже. Игра норм, там ролевая система огого. Реально заморачивался.

Если вам понравился этот урок, поддержите статью пальцем вверх (чуть ниже), а так-же поделитесь ей в социальных сетях. Я планирую продолжить уроки по созданию игр в таком формате (статья + видео + пример).

Всё остальное про создание игр читайте вот тут:


А так-же подписывайтесь на мой ютуб канал - Econ Dude. Там вы найдёте много всего про создание игр, в том числе и различные примеры игр, которые я делал в game maker.

Всем удачи!