Monkey — язык программирования, предназначенный для разработки игр на различных платформах включая настольный компьютер, мобильные и игровые консоли. Сам по себе, язык является объектно-ориентированным диалектом языка Бейсик. Компилятор транслирует код Monkey в исходный код для нескольких целевых платформ, который затем компилируется. В настоящее время официальными целевыми платформами являются: Windows, Mac OS X, Android, iOS, PS4, HTML5 и Adobe Flash. Monkey создан компанией Blitz Research Ltd, создавшей BlitzBasic, Blitz3D and BlitzMax. Пользователями были созданы другие целевые платформы, включающие BlitzMax, Python, Game Boy Advance.
Базовая версия Monkey X — распространяется свободно под лицензией zlib/png, pro-версия, позволяющая компилировать приложения не только под десктопные операционные системы и HTML5, но и мобильные платформы — проприетарный коммерческий программный продукт.
История Monkey был разработан Марком Сибли из Blitz Research Ltd. и выпущен 1 марта 2011 года Blitz Research Ltd. Monkey классифицируется как компилятор от источника к источнику, который может преобразовывать код Monkey в код Java, ActionScript, C++, C# или JavaScript. Этот язык программирования направлен на мульти-платформенную разработку приложений. Он имеет подробную реализацию объектно ориентированной парадигмы и поддерживает наследование, полиморфизм, шаблоны, интерфейсы. Monkey классифицируется как строго типизированный язык.
Начиная с версии 0.59, в Monkey присутствует отладчик для платформ, основанных на C++.
Mojo Mojo представляет собой графический модуль для Monkey и предназначен, в первую очередь, для написания простых 2D-игр.
Целевые платформы Windows Mac OS X Android iOS HTML5 Flash XNA PlayStation Vita
Пример кода ' включение строгого режима Strict
' импорт модуля mojo Import mojo
' точка входа приложения monkey Function Main:Int() New GameApp Return 0 End
' основной класс, расширяющий класс mojo app Class GameApp Extends App Field player:Player
' переопределение метода mojo oncreate Method OnCreate:Int() ' загрузка изображения player.png в переменную img, медиаданные должны храниться в папке project.data Local img:Image = LoadImage("player.png") player = New Player(img, 100, 100) ' установка обновлений в секунду равным 60 SetUpdateRate 60 Return 0 End
' переопределение метода mojo onupdate Method OnUpdate:Int() player.x+=1 If player.x > 100 player.x = 0 End Return 0 End
' переопределение метода mojo onrender Method OnRender:Int() ' очистка экрана заданным цветом (красный, зелёный, синий) Cls 32, 64, 128 player.Draw() Return 0 End End
' класс игрока Class Player Field x:Float, y:Float Field image:Image
' конструктор Method New(img:Image, x:Int, y:Int) self.image = img self.x = x self.y = y End
' рисование спрайта Method Draw:Void() DrawImage image, x, y End End
Программы, написанные с использованием Monkey Zombie Trailer Park — Flash and iOS Pirate Solitaire — iOS , Android and Flash Jet Worm — iPhone and iPad Blotty Pots — Android, iOS, WP7 New Star Soccer Mobile — Android, iOS, Flash and HTML5
Monkey 2 Весной 2016 года Марк Силби опубликовал раннюю версию Monkey 2 — языка программирования, наследующего Monkey-X с поддержкой обобщённого программирования, функций как объектов первого класса и замыканий и т.п. Продукт полностью открыт под лицензией zlib. Первая версия Monkey 2 была выпущена 30 июня 2016 года. Евгений Горошкин на основе кода Ted — среды, поставляемой с первым Monkey, написал на Monkey 2 Ted2Go — IDE для Monkey 2
См. также Haxe
Примечания
Литература
Ссылки
Monkey-X
Русскоязычное сообщество Monkey Немецкий форум Jungle IDE , расширенный коммерческий IDE для Monkey
Monkey 2
страничка monkey2 на blitzresearch
Категория:Бейсик Категория:Объектно-ориентированные языки программирования Категория:Свободные компиляторы и интерпретаторы