Haxe / OpenFL / Flixel

22
我一直在查看Haxe/OpenFL/Flixel网站,但我很难理解它们各自的用途。
据我了解: Haxe是可以部署到多个平台的语言。 OpenFL与Flash有关。 Flixel是一个帮助你制作游戏的库。
能否有人纠正我/让这更加清晰明了。
2个回答

54

Haxe

引用自 haxe.org

Haxe 是一个开源工具包,基于一种现代化、高水平、严格类型的编程语言,搭配了跨编译器、完整跨平台标准库以及访问每个平台本地能力的方法。

语言:

Haxe 是一种编程语言。它类似于 AS3、C# 等语言。它是严格类型的,但具有很好的 type inference 功能。它还拥有许多强大的功能,例如模式匹配枚举(ADT)等等。这些功能可以在编译到任何目标时使用。

标准库:

  • Haxe可以编译成JavaScript、C++、Flash、Java、C#、PHP、Neko、HashLink、Python和Lua等多种语言。它有低层次的标准类,在各个平台上都能一致地工作,例如:StringIntFloatDateMap等。它还提供了一些在多个平台上都有用的跨平台代码,例如:序列化XmlJsonDate格式化等。

  • 通常来说,api.haxe.org网站上的顶级内容或haxe包中的内容,无论编译到哪个目标语言都是可以使用的。

  • 每个目标语言都有自己的包。这样可以通过externs访问该目标语言的本地功能。例如,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(sprites、graphics、movie clips、events)仅在Flash上工作,而不在移动设备或HTML5等上工作。一旦flash开始变得不那么受欢迎,这就成为了一个问题。

OpenFL的作用是让Flash API在其他Haxe目标上工作。因此,您编写了一个使用精灵、图形和Flash样式代码针对Flash API的Haxe游戏。然后,您想要编译成C++(以便针对移动设备等)。即使针对C++或JavaScript,OpenFL也可以让您的Haxe代码使用Flash API。例如,OpenFL为flash、C++和JavaScript创建了flash.graphics.DisplayObject类。因此,如果您知道如何编写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进一步构建在此基础上,提供适用于OpenFL的游戏特定API。例如,您可以使用Haxe创建一个游戏,其中所有内容都使用标准库的数据结构,然后使用OpenFL将其编译为Flash、HTML5、iOS和Android。对于实际的游戏部分,HaxeFlixel是针对游戏优化的,非常快速,因此您可以使用它们的API来设计游戏。
Haxe是一种语言、编译器、工具包和标准库,提供跨平台代码的最基本工具。
OpenFL建立在Haxe之上,并为多个目标(Flash、C ++、JavaScript)提供Flash API,并使其易于编译到许多平台:Web、本机、iOS、Android、Nintendo Switch等。
HaxeFlixel建立在OpenFL之上-它使用OpenFL提供的API创建了一个特定于游戏的框架,具有高性能和轻松制作2D游戏的特点。

实际上,这个答案没有区分Flixel和Haxeflixel,它们是不同的。http://flixel.org/ vs https://haxeflixel.com/ - WickedJargon

16

我最近刚刚发现了HaxeFlixel,我非常喜欢它!我之前使用AS3和Flixel制作游戏,现在我可能永远不会回去了!


所以,为了试图回答您的问题(以及我理解的方式):

Haxe是底层语言。它是一种编程语言,可以编译成Flash、Windows、Android、iOS等等。

OpenFL是一个软件开发工具包,它使用Haxe让通过Haxe获得游戏更容易,同时允许您轻松利用Haxe的兼容性而不必处理很多麻烦和问题。它为您处理了很多基本的东西,使编码更加简单。

HaxeFlixel是基于Adam Atomic的AS3 Flixel和Photon Storm的Flixel Power Tools的2D游戏框架。它使制作2D游戏比AS3/Flixel中几乎相同类型的代码更容易。

当刚开始时,您只需要担心最高级别,也就是HaxeFlixel。

因此,稍微总结一下:Haxe是一种强大的编程语言。您可以尝试弄清楚如何直接使用它进行编码,但这很复杂,或者您可以使用其中一个库使它更加简单- OpenFL就是其中之一。

您可以单独使用OpenFL,并使用它编写游戏,或者您可以使用几种不同的框架之一使它更容易-HaxeFlixel就是其中之一。还有StarlingHaxePunk框架,它们各有优缺点。

个人看法!

强烈推荐使用HaxeFlixel——因为它与Flixel非常相似,我设法学会了如何使用它,并在仅1个月内制作出这个完整游戏,并同时发布了Flash、Windows和Android版本——这是杰出的,考虑到我以前没有接触过Haxe,并且以前从未有时间开始研究Android开发。顺便说一句,该游戏的源代码完全开放源码,所以请随意查看我是如何做到的。

HaxeFlixel社区也非常棒,人们会提供帮助和回答问题。

使用HaxeFlixel真的不太难:

http://haxeflixel.com/documentation/getting-started/

遵循这些步骤,您至少可以在几分钟内运行一个Hello, World!(不包括下载和安装所有东西的时间)。正如我之前提到的,直到你更加熟悉它,只需按照Haxe和OpenFL的说明操作,现在先别想太多!

祝你好运!如果你成功或失败,请告诉我!


我的杀毒软件(Malware Bytes)阻止了您的游戏运行并进行了首次扫描。扫描结果显示安全,但这种初始安全检查很烦人。其他 exe 文件在我的计算机上正常运行。有没有办法让 HaxeFlixel 的 exe 游戏在最终用户使用时不再出现这种情况? - Prid
1
@Prid 我认为这里的问题在于所有防病毒程序会默认将新程序(或很少运行的程序)视为潜在的恶意软件,直到他们确认其安全性。我相信唯一的解决方法是让你的 .exe 程序变得流行(有很多用户使用它),以便其指纹已经存在于各种防病毒软件的数据库中。此外,还有软件数字签名,可能有所帮助,但我不太清楚 :) - Aistis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接