首先,我为长篇大论道歉。我一直在问一些关于 haxe 及其作为解决我所面临问题的工具的适用性的问题。我对 haxe 的了解非常有限,但我所知道的是我在项目中对 haxe 的理想角色不是正常使用 haxe。所以我试图避免浪费时间我没有学习这门语言(尽管它看起来非常有趣和强大)只是发现它不适合目的。因此,我希望从经验丰富的兽医那里得到一些建议,看看它是否适合目的。我真的希望它是。
这是我想要实现的目标:
我在游戏行业工作,我需要用 C++ 和 JS 创建一个游戏。用于嵌入式系统的 C++ 和用于在线和移动设备的 JS。我在 C++ 和 JS 方面都非常有经验。
我开发的游戏我只想写一次。现在我可以使用 emscripten 之类的东西从 C++ 转到 JS,但这会导致编译的 JS 代码无法使用 chrome 开发工具轻松调试。我确信我会在编译的 JS 中遇到边缘情况错误,我不能轻易地回到原始 C++。另外,一些游戏平台需要公平实验室查看源代码,这对于编译的 JS 来说是个问题。
我真正需要的是一个源到源编译器,它可以生成本机和人类可读的 C++ 和 JS 代码,然后我可以在必要时使用并修改其本机形式,因此是 haxe。我查看了 haxe 为 C++ 和 JS 生成的代码。JS 看起来非常容易理解和使用。C++ 不是那么多,但仍然可以接受。我什至可以阻止 haxe 编译和链接我不需要的 C++。我只想要源代码。
到现在为止还挺好。
现在我有一个使用 oxygine 2d 引擎的 c++ 游戏框架。它能够显示精灵等以及我为消息总线和有限状态机创建的框架(也加载更多有用的类)。我在 JS 中也有一个类似的框架,它使用 Pixijs 作为其 2d 引擎,并拥有自己的消息总线等,就像 C++ 引擎一样。
现在我想要做的是用 haxe 编写模块,当我转译为 C++ 和 JS 时,代码可以作为框架的一部分包含在内,并与它受人尊敬的语言引擎一起工作。我在 haxe 中创建的每个对象都将非常封装,只需要订阅消息总线、处理消息并发送回消息。它可能还需要知道如何使用其引擎状态机。所以我不知道这是否甚至可以使用 haxe,因为消息总线(以及其他对象)不会用 haxe 编写,而是在它被转译并在其本机项目中构建后提供给模块。也许我可以编写自己的 haxe 库,它知道我的两个游戏引擎的语法,并且可以根据其目标语言进行转换?不确定这是可能的。
感谢您花时间阅读,以及您可以提供的任何建议。