Первые шаги в Monkey

Привет и добро пожаловать в Monkey!

Пожалуйста, прочитайте эту статью полностью. Некоторые вещи в Monkey требуют особого внимания, поэтому данная статья попытается охватить все неясные моменты, которые у вас могут возникнуть в самом начале.

Установка

После установки Monkey, вы сразу сможете компилировать и запускать приложения для целевой платформы HTML5. Если у вас возникли проблемы с запуском HTML5-приложений, возможно вам стоит обновить свой браузер.

Чтобы компилировать под другие платформы, вам нужно установить необходимые инструменты и SDK для конкретной целевой платформы. Например, для сборки приложения под Android вам понадобится установить SDK для Android.

Более подробную информацию вы можете найти в разделе Установка SDK для целевых платформ.

Язык Monkey

Monkey — высокоуровневый язык программирования, основанный на семействе популярных языков "Blitz", вдохновленный организованностью Java и читабельностью BASIC.

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

После того, как Monkey завершит трансляцию программы в соответствующий таргету вид, он передает её нативным инструментам и SDK, которые использует целевая платформа, чтобы завершить компиляцию и линковку. Поэтому, прежде чем использовать Monkey вам нужно убедиться, что у вас установлены все нужные инструменты и SDK используемые различными целевыми платформами. Инструкцию по установке пакетов SDK целевых платформ вы можете найти в специальном разделе.

Также, в разделе Справочник по языку вы можете найти описание языка программирования Monkey.

Небольшие советы по Monkey

  • исходные файлы Monkey должны иметь расширение '.monkey'.
  • Все программы Monkey должны иметь функцию Main(), которая не принимает никаких параметров и возвращает целое число. Вот где начинается выполнение программы. Если вы используете модуль Mojo, вам понадобиться создать экземпляр класса App внутри функции Main().
  • Все операторы в программе Monkey должны помещаться внутри функции или объявлении метода. Это существенное отличие от ранних языков Blitz, где позволялось держать операторы программ в основной части программы/модуля.
  • Когда программа Monkey транслируется с помощью транслятора, вывод данных осуществляется в специальную директорию 'build' (директория сборки). Эта директория имеет то же имя, что и главный исходный файл программы, только с расширением'.build' вместо '.monkey'. Вы можете свободно изменять исходные файлы и проекты в директориях '.build'. Однако, стоит избегать каких-либо изменений между специальными тегами //${BEGIN.. и //${END...} в любых исходных файлах. Именно сюда помещается генерируемый Monkey код и вспомогательные данные. Этот блок полностью заменяется каждый раз, когда вы пересобираете приложение Monkey.

Модуль Mojo

Monkey включает в себя легковесный игровой фреймворк под названием Mojo.

Mojo предназначен, в первую очередь, для написания простых 2D-игр. Это легкопортируемый, легковесный фреймворк является по большому счету низкоуровневой прослойкой. Во многих отношениях, он предназначен для тех программистов, кто хочет получить доступ к низкоуровневым вещам настолько просто, насколько это возможно.

Скорее всего вы будете использовать Mojo, когда только начнете программировать. Но важно знать, что он не является частью языка Monkey. Это дополнительный модуль и в будущем, могут появиться другие подобные модули.

Mojo находится в свободном доступе для HTML5 и Desktop таргетов и может быть расширен путем покупки лицензии у Blitz Research Ltd. для целевых платформ Android, iOS, XNA, PSM и Win8.

Небольшие советы по Mojo

  • Приложения Mojo должны расширять класс Mojo App и создавать новый экземпляр этого класса где-то внутри функции Main(). Фактически, это то, что на самом деле создает приложение.
  • Все данные для программ Mojo (изображения, звуки и текстовые файлы) должны храниться в специальном контейнере ресурсов. Эта директория имеет то же имя, что и главный исходный файл программы, только с расширением '.data' вместо '.monkey'. Например, если основной исходный файл называется 'joust2k.monkey', тогда ваша контейнер ресурсов должен называться 'joust2k.data'.
  • Функции Mojo не должны вызываться до вызова метода OnCreate. Это означает, что вы не можете инициализировать глобальные переменные со значениями, возвращаемыми функциями Mojo такими, как MilliSecs. Вместо этого, вы должны инициализировать такие переменные в методе OnCreate вашего приложения или позже.
  • Работа Mojo основана на функциях обратного вызова, в отличие от более ранних продуктов Blitz Research, где "сердцем" вашего приложения был главный цикл. Вместо этого, приложение основанное на функциях обратного вызова, реагирует на генерируемые базовой операционной системой события.
  • Mojo не инициализирует размер окна приложения. Это должно быть сделано на стороне целевой платформы путем изменения редактирования файлов проекта в директории сборки '.build'. Процесс изменения размера окна (и контроль отображения в целом) сильно варьируется от таргета к таргету. Он может включать в себя редактирование исходного кода, или даже использование инструмента RAD tool для изменения размеров окна. Именно поэтому Mojo не пытается решить такого рода задачи. Вы можете найти дополнительную информацию в документации к различным целевым платформам.