【问题标题】:Haxe / OpenFL / FlixelHaxe / OpenFL / Flixel
【发布时间】:2014-01-08 08:01:48
【问题描述】:

我一直在浏览 Haxe / OpenFL / Flixel 的网站,但很难理解每个网站的用途。

据我了解:

Haxe 是一种可以部署到多个平台的语言。 OpenFL 与 Flash 有关。 Flixel 是一个帮助您制作游戏的库。

谁能纠正我/让它更清楚。

【问题讨论】:

    标签: haxe openfl haxeflixel


    【解决方案1】:

    斧头

    引用haxe.org

    Haxe 是一个开源工具包,它基于现代、高级、严格类型的编程语言、交叉编译器、完整的跨平台标准库以及访问每个平台的原生功能的方式。

    语言:

    Haxe 是一种编程语言。它类似于 AS3、C# 等。它是严格类型的,但有很好的type inference。它有很多强大的功能,例如Pattern MatchingEnums (ADTs)Macros 等。无论您编译到哪个目标,这些功能都有效。

    标准库:

    • Haxe 可以编译为 JavaScript、C++、Flash、Java、C#、PHP、NekoHashLink、Python 和 Lua。它具有跨平台一致工作的低级标准类,例如:StringIntFloatDateMap 等。它还有一些有用的跨平台代码,例如 SerializationXmlJsonDate formatting

    • 作为一般规则,api.haxe.org 上的任何顶级内容或 haxe 包中的任何内容都将适用于您编译到的任何目标。

    • 每个目标都有自己的包。这些使您可以通过externs 访问该目标的本机功能。例如。 js.html 有 DOM 外部,flash 有 Flash API 的外部等。

    • sys 包,可用于“后端”目标:C++、Java、Neko、HashLink、PHP、Python 和 Lua。它也可以在带有 hxnodejs 库的 JavaScript/Node 上使用。

    其他内容:

    与许多其他编译器相比,Haxe 编译器的速度非常快。这本身就是一个卖点。还有macros,它可以让你以一种非常强大的方式进行大量的预处理。然后是像 Haxelib 这样的工具,可以让你链接到 3rd 方库。

    OpenFL

    当 Haxe 刚开始时,Flash 仍然是一个大目标,它无处不在,非常适合制作游戏。许多 Flash 开发人员喜欢 Haxe,因为它速度快、输入安全、开源,并且为他们提供了更多功能。但 Flash API(精灵、图形、影片剪辑、事件)仅适用于 Flash,而不适用于移动设备或 HTML5 等。一旦 Flash 开始变得不那么流行,这就是一个问题。

    OpenFL 所做的是使 Flash API 可以在其他 Haxe 目标上运行。因此,您使用精灵和图形以及 Flash 样式代码编写了一个针对 Flash API 的 Haxe 游戏。然后,您要编译为 C++(针对移动设备等)。 OpenFL 允许您的 Haxe 代码使用 Flash API,即使针对 C++ 或 JavaScript。例如,OpenFL 不仅为 flash 创建了flash.graphics.DisplayObject 类,还为 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 在此基础上进一步构建,并提供适用于 OpenFL 的游戏特定 API。

    这一切如何协同工作的示例:

    • 您创建了一个游戏。所有这些都是用 Haxe 编写的。诸如玩家姓名、分数和完成信息之类的东西都使用标准库中的数据结构。它们可以在您的游戏中运行,但您也可以让它们在您的 PHP 网站上运行。

    • 您的游戏使用 OpenFL 编译为 Flash、HTML5、iOS 和 Android。作为 OpenFL 的一部分,您还可以访问标准 Flash API 类,例如舞台和按钮以及鼠标事件,您可以将它们用于菜单屏幕。因为 OpenFL 为其他目标提供了 flash.* 类,所以您的应用可以编译成各种不同的东西。

    • 对于您的实际游戏,性能很重要,而 Flash DisplayList 方法有点慢,并且没有针对游戏进行优化。 HaxeFlixel 针对游戏进行了优化,速度非常快。因此,您可以使用 HaxeFlixel 的 API 来设计您的游戏。

    总结

    Haxe 是一种语言、编译器、工具包和标准库。它为跨平台代码提供了最基本的工具。

    OpenFL 建立在 Haxe 之上,并为多个目标(Flash、C++、JavaScript)提供 Flash API,并且可以轻松编译到一系列平台:web、native、iOS、Android、Nintendo Switch 等。

    HaxeFlixel 基于 OpenFL 构建 - 它使用 OpenFL 提供的 API 来创建高性能且易于制作 2D 游戏的游戏特定框架。

    【讨论】:

    【解决方案2】:

    我最近才发现 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 就是这些框架之一。还有StarlingHaxePunk 框架,它们各有优缺点。

    意见时间!

    我强烈建议坚持使用 HaxeFlixel - 因为它与 Flixel 非常相似,所以我设法拿起它并学习如何使用它,并在 1 个月内制作了 this complete game 并发布了 Flash、Windows 和 Android 版本所有这些都在同一天 - 考虑到我之前没有接触过 Haxe,而且之前甚至没有时间开始研究 Android 开发,这真是太棒了。顺便说一下,该游戏的源代码是完全开源的,所以请随意深入了解我是如何做到的。

    HaxeFlixel 社区也非常棒,人们会帮助您并回答问题。

    加入并开始使用 HaxeFlixel 真的不是太难:

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

    按照这些步骤,您至少可以在几分钟内启动并运行Hello, World!(不包括下载和安装所有内容所需的时间)。就像我之前提到的,在您对它更加熟悉之前,只需按照 Haxe 和 OpenFL 的说明进行操作,但现在不要考虑它!

    祝你好运!如果你成功了,请告诉我!

    【讨论】:

    • 我的防病毒软件(恶意软件字节)阻止了您的游戏运行并首先对其进行了扫描。结果很安全,但最初的安全检查很烦人。其他exe 文件在我的电脑上正常运行。有什么方法可以让最终用户在没有这个的情况下运行 HaxeFlixel exe 游戏?
    • @Prid 我认为这里的问题是默认情况下所有防病毒程序都将新程序(或很少运行的程序)视为潜在的恶意软件,直到它们确认它们是安全的。我相信解决它的唯一方法是让您的.exe 流行(有很多用户使用它),因此它的指纹已经在各种防病毒数据库中。还有软件的数字签名,这可能会有所帮助,但我真的不知道:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多