Ответ 1
Haxe
Цитировать с haxe.org:
Haxe - это набор инструментов с открытым исходным кодом, основанный на современном высокоуровневом, строго типизированном языке программирования, кросс-компиляторе, полной кроссплатформенной стандартной библиотеке и способах доступа к собственным возможностям каждой платформы.
Язык:
Haxe - это язык программирования. Он похож на AS3, С# и т.д. Он строго типизирован, но имеет большой тип вывода. Он имеет множество мощных функций, таких как Pattern Matching, Enums (ADT), Macros и т.д. Они работают независимо от того, к какой цели вы хотите компилироваться.
Стандартная библиотека:
-
Haxe может компилироваться в JavaScript, C++, Flash, Java, С#, PHP, Neko, HashLink, Python и Lua. Он имеет стандартные классы низкого уровня, которые работают согласованно на разных платформах, таких как:
String
,Int
,Float
,Date
,Map
и т.д. Он также имеет некоторый полезный кроссплатформенный код для таких вещей, как сериализация,Xml
,Json
, форматированиеDate
и т.д. -
Как правило, все на api.haxe.org, находящемся на верхнем уровне или в пакете
haxe
, будет работать независимо от цели, которую вы компилируете. -
У каждой цели есть свой пакет. Они позволяют вам получить доступ к собственным возможностям этой цели через внешние интерфейсы. Например.
js.html
имеетjs.html
DOM,flash
имеет внешние для Flash API и т.д. -
Существует пакет
sys
, который доступен для "внутренних" целей: C++, Java, Neko, HashLink, PHP, Python и Lua. Он также доступен на JavaScript/Node с библиотекой hxnodejs.
Другие вещи:
Компилятор Haxe очень быстр по сравнению с другими компиляторами. Это точка продажи сама по себе. Там также есть макросы, которые позволяют вам выполнять предварительную обработку очень мощным способом. Затем есть такие инструменты, как Haxelib, которые позволяют вам подключаться к сторонним библиотекам.
OpenFL
Когда Haxe только начинался, Flash по-прежнему оставался большой целью, он был установлен повсюду и отлично подходил для создания игр. Многим разработчикам Flash понравился Haxe, потому что он был быстрым, безопасным с открытым исходным кодом и давал им больше возможностей. Но Flash API (спрайты, графика, видеоклипы, события) работали только на Flash, но не на мобильных устройствах, не на HTML5 и т.д. Что было проблемой, когда Flash стал менее популярным.
OpenFL заставляет Flash API работать с другими целями Haxe. Итак, вы написали игру Haxe, ориентированную на flash API, используя спрайты, графику и код в стиле flash. Затем вы хотите скомпилировать в C++ (для таргетинга на мобильные устройства и т.д.). OpenFL позволяет вашему коду Haxe использовать Flash API, даже если он нацелен на C++ или JavaScript. Например, OpenFL создает класс flash.graphics.DisplayObject
не только для flash, но и для C++ и JavaScript. Так что если вы знаете, как писать Flash-игры, вы уже близки к написанию OpenFL-игр.
OpenFL также имеет несколько отличных инструментов, облегчающих развертывание ваших игр на определенных платформах. Где цели Haxe - такие вещи, как "JS", "SWF", "C++", платформы OpenFL - "iOS", "Android", "Switch", "HTML5", "Windows EXE" и т.д. Когда вы слышите Что касается Haxe, предназначенного для мобильных устройств, то в большинстве случаев это OpenFL, потому что он работает с Haxe для компиляции вашего кода (в C++, JS, SWF и т.д.), а затем упаковывает эти двоичные файлы для мобильных устройств.
Flixel
Haxe - это язык, компилятор и стандартная библиотека.
OpenFL основывается на этом и добавляет Flash API, работающий с целями.
HaxeFlixel развивает это еще дальше и предоставляет специальные API для игр, которые работают на OpenFL.
Пример того, как все это работает вместе:
-
Вы создаете игру. Все это написано на гексе. Такие вещи, как имя игрока, очки и информация о завершении, используют структуры данных из стандартной библиотеки. Они будут работать в вашей игре, но вы также можете заставить их работать на вашем сайте PHP.
-
Ваша игра использует OpenFL для компиляции во Flash, HTML5, iOS и Android. Как часть OpenFL, у вас также есть доступ к стандартным классам Flash API, таким как Stage и Buttons and MouseEvents, которые вы можете использовать для экрана вашего меню. Поскольку OpenFL предоставляет классы flash. * Для других целей, ваше приложение компилируется для разных целей.
-
Для вашей реальной игры важна производительность, а подход FlashListList немного медленный и не оптимизирован для игр. HaxeFlixel оптимизирован для игр и очень быстр. Таким образом, вы разрабатываете свою игру с HaxeFlixel, используя их API.
Резюме
Haxe - это язык, компилятор, инструментарий и стандартная библиотека. Он предоставляет самые основные инструменты для кроссплатформенного кода.
OpenFL построен на Haxe и предоставляет Flash API для нескольких целей (Flash, C++, JavaScript) и упрощает компиляцию для множества платформ: веб, нативная, iOS, Android, Nintendo Switch и т.д.
HaxeFlixel построен на OpenFL - он использует API-интерфейсы, предоставляемые OpenFL, для создания игровой среды, которая отличается высокой производительностью и простотой создания 2D-игр.