Monkey (язык программирования) (Monkey (x[dt hjkijgbbnjkfgunx))
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Monkey X | |
---|---|
Класс языка | мультипарадигменный: cтруктурный, императивный, объектно-ориентированный, модульный, рефлексивный, обобщённый, параллельный |
Появился в | 1 марта 2011 |
Автор | Mark Sibly |
Система типов | статическая, сильная(опционально) и слабая, номинативная[англ.], с частичным выводом типов |
Испытал влияние | BlitzBasic, BlitzMax, C, C++, C#, JavaScript, Java |
Лицензия | zlib / Проприетарный (коммерческий). (См.: Mojo)[1]. |
Сайт | monkeycoder.co.nz |
Платформа | Кроссплатформенное ПО |
ОС | Windows |
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[2], pro-версия, позволяющая компилировать приложения не только под десктопные операционные системы и HTML5, но и мобильные платформы — проприетарный коммерческий программный продукт.
История
[править | править код]Monkey был разработан Марком Сибли из Blitz Research Ltd. и выпущен 1 марта 2011 года[3]. 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 Архивная копия от 29 августа 2012 на Wayback Machine — Flash and iOS
- Pirate Solitaire — iOS Архивная копия от 12 ноября 2012 на Wayback Machine, Android Архивная копия от 8 декабря 2011 на Wayback Machine and Flash Архивная копия от 30 августа 2012 на Wayback Machine
- Jet Worm — iPhone and iPad
- Blotty Pots Архивная копия от 3 декабря 2012 на Wayback Machine — Android, iOS, WP7
- New Star Soccer Mobile Архивная копия от 28 августа 2012 на Wayback Machine — Android, iOS, Flash and HTML5
Monkey 2
[править | править код]Весной 2016[4] года Марк Силби опубликовал раннюю версию Monkey 2 — языка программирования, наследующего Monkey-X с поддержкой обобщённого программирования, функций как объектов первого класса и замыканий и т.п.[5] Продукт полностью открыт под лицензией zlib. Первая версия Monkey 2 была выпущена 30 июня 2016 года[6]. Евгений Горошкин на основе кода Ted — среды, поставляемой с первым Monkey, написал на Monkey 2 Ted2Go — IDE для Monkey 2[7]
См. также
[править | править код]Примечания
[править | править код]- ↑ Monkey's license for the open-source portion. (Official GitHub page)
- ↑ Проект Monkey X на сайте GitHub
- ↑ Архивированная копия . Дата обращения: 13 июня 2012. Архивировано 10 мая 2012 года. Blitz Research Ltd
- ↑ Mark Sibly. blitz-research/monkey2 — v0.0.4. — 2016-05-01. Архивировано 3 ноября 2020 года.
- ↑ About Monkey 2 (англ.). Monkey 2. Дата обращения: 8 февраля 2019. Архивировано из оригинала 6 февраля 2019 года.
- ↑ Mark Sibly. blitz-research/monkey2 — v1.0.0. — 2016-06-30. Архивировано 3 ноября 2020 года.
- ↑ Проект Ted2Go на сайте GitHub
Литература
[править | править код]- Michael Hartlef. Monkey Game Development: Beginner's Guide. — Packt Publishing Ltd, 2012. — 402 p. — ISBN 978-1-84969-209-0.
Ссылки
[править | править код]Monkey-X
[править | править код]- Проект Monkey (язык программирования) на сайте GitHub
- Артур Бикмуллин. Язык программирования Monkey . habr.com (20 ноября 2012). Дата обращения: 8 февраля 2019. Архивировано 9 февраля 2019 года.
- Русскоязычное сообщество Monkey Архивная копия от 9 февраля 2019 на Wayback Machine
- Немецкий форум Архивная копия от 10 июля 2020 на Wayback Machine
- Jungle IDE Архивная копия от 10 ноября 2019 на Wayback Machine, расширенный коммерческий IDE для Monkey
Monkey 2
[править | править код]- monkeycoder.co.nz — официальный сайт Monkey
- Проект Monkey 2 на сайте GitHub
- страничка monkey2 Архивная копия от 9 февраля 2019 на Wayback Machine на blitzresearch