首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haxe / OpenFL / Flixel

Haxe / OpenFL / Flixel
EN

Stack Overflow用户
提问于 2013-12-19 16:38:09
回答 2查看 8.1K关注 0票数 22

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

据我所知:

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

有人能纠正我/说得更清楚吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-21 01:31:48

哈克

引用haxe.org

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

语言:

Haxe是一种编程语言。它类似于AS3,C#等。它是严格类型的,但是有很好的类型推理。它具有许多强大的特性,如模式匹配Enum (ADTs)等。这些功能无论您编译到哪个目标,都是可以工作的。

标准库:

  • Haxe可以编译成JavaScript、C++、Flash、C#、PHP、尼科HashLink、Python和Lua。它有一些低级的跨平台标准类,如:StringIntFloatDateMap等,还有一些有用的跨平台代码,比如串行化XmlJson格式化等。
  • 通常情况下,api.haxe.org上任何位于顶层或haxe包中的内容,无论您编译到哪个目标,都能正常工作。
  • 每个目标都有自己的包。这些功能允许您通过外行访问该目标的本地功能。例如:js.html有DOM外接程序,flash有Flash的外接程序,等等。
  • 有一个sys包,它可以在“后端”目标上使用: C++、Java、Neko、HashLink、Python和Lua。它也可以在hxnodejs库的JavaScript/Node上使用。

其他内容:

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

OpenFL

当Haxe刚开始的时候,Flash仍然是一个很大的目标,它被安装在所有的地方,对于制作游戏来说是很棒的。许多Flash开发人员喜欢Haxe,因为它速度快、类型安全、开源,并为他们提供了更多的特性。但是Flash (精灵,图形,电影剪辑,事件)只在flash上工作,而不是在手机上,或者在HTML5上,这是一个问题,当闪存开始变得不那么流行。

OpenFL所做的就是让Flash在其他Haxe目标上工作。所以你写了一个Haxe游戏,目标闪光灯API使用精灵,图形和闪存风格的代码。然后,您希望编译到C++ (用于目标移动等)。OpenFL允许您的Haxe代码使用Flash,即使是针对C++或JavaScript。例如,OpenFL不仅为闪存,而且为C++和JavaScript创建flash.graphics.DisplayObject类。因此,如果您知道如何编写Flash游戏,那么您已经接近编写OpenFL游戏了。

OpenFL还有一些很好的工具,可以使您的游戏更容易部署到特定的平台上。在Haxe目标是" JS“、" SWF”、" C++“的地方,OpenFL平台是"iOS”、"Android“、"Switch”、"HTML5“、"Windows”等。当你听说Haxe目标是移动设备时,很多时候都是OpenFL,因为它与Haxe一起编译代码(包括C++、JS、SWF等),然后打包这些用于移动的二进制文件。

弗利塞尔

Haxe是一种语言、编译器和标准库。

OpenFL在此基础上添加了跨目标工作的Flash。

HaxeFlixel在此基础上更进一步,并提供了在OpenFL上工作的特定于游戏的API。

一个例子说明了这一切是如何一起工作的:

  • 你创造了一个游戏。所有这些都是用哈克斯写的。玩家名称、分数和完成信息等都使用标准库中的数据结构。他们会在你的游戏中工作,但你也可以让他们在你的PHP网站上工作。
  • 您的游戏使用OpenFL编译为Flash、HTML5、iOS和Android。作为OpenFL的一部分,您还可以访问标准的Flash类,比如舞台、按钮和MouseEvents,您可以在菜单屏幕上使用这些类。因为OpenFL为其他目标提供了flash.*类,所以您的应用程序编译成所有不同的东西。
  • 对于您的实际游戏,性能是重要的,闪存DisplayList方法是有点慢,没有优化的游戏。HaxeFlixel被优化为游戏,而且速度非常快。所以你用HaxeFlixel来设计你的游戏,使用他们的API。

摘要

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

OpenFL是建立在Haxe上的,它为多个目标(Flash、C++、JavaScript)提供了Flash,并使其易于编译到许多平台上: web、原生平台、iOS、安卓、任天堂交换机等。

HaxeFlixel是建立在OpenFL之上的--它使用OpenFL提供的API来创建一个特定于游戏的框架,该框架具有高性能,易于制作2D游戏。

票数 54
EN

Stack Overflow用户

发布于 2013-12-19 21:37:17

我最近才发现HaxeFlixel,我很喜欢它!我是用Flixel在AS3中制作游戏的,现在我可能再也不会回去了!

所以,试着回答你的问题(以及我理解的方式):

哈克斯是最底层的。它是一种可以编译成Flash、Windows、Android、iOS等的编程语言。

OpenFL是一种软件开发工具包,它使用Haxe使游戏通过Haxe更容易、更流畅地工作,并允许您轻松地利用Haxe兼容性的力量,同时不必处理大量麻烦和您可以进入的问题。它为您处理了许多基本的东西,并使代码更容易编写。

HaxeFlixel是一个2D游戏框架,基于亚当原子的FlixelforAS3和Flixel的光子风暴组合。它使得在AS3/Flixel中使用几乎相同类型的代码制作2D游戏变得更容易。

刚开始的时候,您应该只需要担心最高级别的问题,在您的例子中,这就是HaxeFlixel。

因此,总结一下: Haxe是一种强大的编程语言。您可以尝试找出如何使用“as- is”来编写代码,这很复杂,或者可以使用多个库中的一个来简化它-- OpenFL就是这些库之一。

您可以单独使用OpenFL,并使用它编写游戏代码,或者可以使用许多不同的框架中的一个来简化它-- HaxeFlixel就是这些框架之一。还有史达琳HaxePunk框架,它们有各自的优缺点。

意见时间!

我强烈建议坚持使用HaxeFlixel --因为它与Flixel非常相似,所以我设法把它捡起来,学习如何使用它,并在整整一个月的时间内制作了这个完整的游戏,并在同一天发布了Flash、Windows和Android版本--考虑到我以前从未碰过Haxe,也从未有时间开始关注安卓开发,这一点非常突出。顺便说一句,那个游戏的源代码是完全开源的,所以可以随意钻研,看看我是怎么做的。

HaxeFlixel的社区也很棒,人们会帮你解答问题。

跳进并开始使用HaxeFlixel并不太难:

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

按照这些步骤,您至少可以在几分钟内启动并运行一个Hello, World! (不包括下载和安装所有东西所需的时间)。就像我前面提到的,直到你对它更满意为止,只需按照Haxe和OpenFL的指示行事,但是暂时不要去想它!

祝好运!如果你在任何地方都能做到就告诉我!

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20687000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档