我一直在浏览Haxe / OpenFL / Flixel的网站,但我很难理解每个网站的用途。
据我所知:
Haxe是一种可以部署到多个平台的语言。 OpenFL与Flash有关。 Flixel是一个帮助您制作游戏的库。
任何人都可以纠正我/让它更清楚。
答案 0 :(得分:50)
引用haxe.org:
Haxe是一个开源工具包,基于现代,高级,严格类型的编程语言,交叉编译器,完整的跨平台标准库以及访问每个平台本机功能的方法。
<强>语言强>
Haxe是一种编程语言。它类似于AS3,C#等。它是严格打字的,但有很好的type inference。它有许多强大的功能,例如Pattern Matching,Enums (ADTs),Macros等。无论您编译到哪个目标,它们都能正常工作。
标准图书馆:
Haxe可以编译为JavaScript,C ++,Flash,Java,C#,PHP,Neko,HashLink,Python和Lua。它具有低级别的标准类,可以跨平台一致地工作,例如:String
,Int
,Float
,Date
,Map
等。它还有一些适用于Serialization,Xml
,Json
,Date
formatting等内容的有用跨平台代码。
作为一般规则,位于顶级或haxe
包中的api.haxe.org上的任何内容都适用于您编译的目标。
每个目标都有自己的包。这些允许您通过externs访问该目标的本机功能。例如。 js.html
有DOM externs,flash
有外部API,等等。
有sys
包,可在“后端”目标上找到:C ++,Java,Neko,HashLink,PHP,Python和Lua。它也可以在带有hxnodejs库的JavaScript / Node上使用。
其他内容:
与其他一些编译器相比,Haxe编译器速度超快。这本身就是一个卖点。还有macros,它允许您以非常强大的方式进行一系列预处理。然后是像Haxelib这样的工具,可以让你链接到第三方库。
当Haxe刚开始时,Flash仍然是一个很大的目标,它安装在任何地方,它非常适合制作游戏。许多Flash开发人员喜欢Haxe,因为它是快速,类型安全,开源的,并为他们提供了更多功能。但Flash API(精灵,图形,电影剪辑,事件)仅适用于Flash,而不适用于移动设备或HTML5等。一旦闪存开始变得不那么流行,这就成了问题。
OpenFL的作用是使Flash API能够在其他Haxe目标上运行。因此,您使用精灵和图形以及闪存式代码编写了一个针对Flash API的Haxe游戏。然后,您想要编译为C ++(用于定位移动设备等)。 OpenFL允许您的Haxe代码使用Flash API,即使是针对C ++或JavaScript。例如,OpenFL不仅为flash创建flash.graphics.DisplayObject
类,而且为C ++和JavaScript创建{{1}}类。因此,如果您知道如何编写Flash游戏,那么您已经接近编写OpenFL游戏了。
OpenFL还有一些很棒的工具,可以让您更轻松地将游戏部署到特定平台。 Haxe目标是“JS”,“SWF”,“C ++”之类的东西,OpenFL平台就像“iOS”,“Android”,“Switch”,“HTML5”,“Windows EXE”等。当你听说Haxe目标是移动设备,很多时候它都是OpenFL,因为它可以与Haxe一起编译你的代码(转换成C ++,JS,SWF等),然后将这些二进制文件打包成移动设备。
Haxe是一种语言,编译器和标准库 OpenFL以此为基础,并添加了跨目标的Flash API HaxeFlixel在此基础上进一步发展,并提供适用于OpenFL的游戏特定API。
一起如何协同工作的一个例子:
您创建了一个游戏。所有这些都是用Haxe编写的。玩家姓名,分数和完成信息等都使用标准库中的数据结构。它们可以在您的游戏中运行,但您也可以在PHP网站上运行它们。
您的游戏使用OpenFL编译为Flash,HTML5,iOS和Android。作为OpenFL的一部分,您还可以访问标准的Flash API类,例如Stage和Buttons以及MouseEvents,您可以将它们用于菜单屏幕。因为OpenFL为其他目标提供了flash。*类,所以你的应用程序可以编译所有不同的东西。
对于您的实际游戏,性能很重要,而且Flash DisplayList方法有点慢,并且没有针对游戏进行优化。 HaxeFlixel针对游戏进行了优化,速度非常快。所以你使用他们的API设计你的游戏HaxeFlixel。
Haxe是一种语言,编译器,工具包和标准库。它为跨平台代码提供了最基本的工具。
OpenFL建立在Haxe之上,为多个目标(Flash,C ++,JavaScript)提供Flash API,并且可以轻松编译到一堆平台:web,native,iOS,Android,Nintendo Switch等。
HaxeFlixel基于OpenFL构建 - 它使用OpenFL提供的API来创建一个高性能且易于制作2D游戏的游戏特定框架。
答案 1 :(得分:16)
我刚刚发现了HaxeFlixel,我喜欢它!我来自使用Flixel在AS3制作游戏,现在我可能永远不会回去!
所以,试图回答你的问题(以及我理解它的方式):
Haxe是最底层的。它是可编译成Flash,Windows,Android,iOS等编程语言等。
OpenFL是一个软件开发工具包,它使用Haxe使游戏更容易,更顺畅地通过Haxe让游戏工作,让您轻松利用Haxe兼容性的强大功能,同时不必处理许多麻烦和问题你可以进入。它可以为您处理许多基本内容,并使代码更容易。
HaxeFlixel是一款2D游戏框架,基于Adam Atomic的Flixel for AS3和Photon Storm的Flixel Power Tools。它使用与AS3 / Flixel几乎相同类型的代码制作2D游戏更容易。
刚刚开始时,您只需要担心最高级别,在您的情况下是HaxeFlixel。
所以,总结一下:Haxe是一种强大的编程语言。您可以尝试弄清楚如何使用“原样”进行编码,这很复杂,或者您可以使用多个库中的一个来使其更容易 - OpenFL就是这些库中的一个。
您可以单独使用OpenFL,并使用它编写游戏,或者您可以使用许多不同框架之一来简化它 - HaxeFlixel是这些框架之一。还有Starling和HaxePunk框架,它们各有利弊。
我强烈建议坚持使用HaxeFlixel - 因为它与Flixel非常相似,我设法拿起它并学习如何使用它,并在一个月内制作了this complete game并发布了Flash,Windows和Android版本都在同一天 - 考虑到我之前没有触及过Haxe,并且之前从未有时间开始关注Android开发,因此非常出色。顺便说一句,该游戏的源代码是完全开源的,所以请随意深入了解我是如何做到的。
HaxeFlixel的社区也非常棒,人们会帮助你解答问题。
跳入并开始使用HaxeFlixel真的不太难:
http://haxeflixel.com/documentation/getting-started/
按照这些步骤,你至少会在几分钟内启动并运行Hello, World!
(不包括下载和安装所有内容所需的时间)。就像我之前提到的那样,直到你对它更加满意为止,只需遵循Haxe和OpenFL的指示,但现在不要考虑它!