首先,我为长篇大论道歉.我一直在问一些关于haxe及其作为解决我所面临问题的工具的适用性的问题.我对haxe的知识非常有限,但我所知道的是我在haxe项目中的理想角色并不是haxe的正常使用.所以我想避免的是浪费时间我没有学习这种语言(尽管它看起来非常有趣和强大)只是发现它不适合目的.所以我希望得到一些关于它是否适合目的的经验丰富的兽医.我真的希望它是.
这是我想要实现的目标:
我在游戏行业工作,我需要用C++和JS创建游戏.用于嵌入式系统的C++和用于在线和移动的JS.我在C++和JS方面都很有经验.
我开发的游戏我只想写一次.现在我可以使用类似emscripten的东西从C++转到JS,但这会导致编译的JS代码无法轻松地使用chrome dev工具进行调试.我已经收敛了,我将使用编译的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库,它知道我的两个游戏引擎的语法,并且可以根据其目标语言进行转换?不确定这是可能的.
感谢您花时间阅读,以及您可以提供的任何建议.
我有许多 git 存储库,每个存储库都有自己的 npm package.json 文件,它们相互引用。当我使用 npm install 安装主包时,它成功地将所有 package.json 中引用的所有 git repos 克隆到 node_modules 文件夹中。但是,它们不会与 .git 文件夹一起克隆,以便我将任何更改保留在源代码控制之下。是否可以 npm install 这些软件包并获取 .git 文件夹?
谢谢
我正在使用VS2005编译我的程序.我链接到SDL静态库,并得到以下链接器错误;
1>LIBCMTD.lib(fpinit.obj) : error LNK2005: __fltused already defined in SDL2d.lib(SDL_stdlib.obj)
1>LIBCMTD.lib(ftol2.obj) : error LNK2005: __ftol2_sse already defined in SDL2d.lib(SDL_stdlib.obj)
1> Creating library ..\..\..\product\VS2005\libs\\Standalone.lib and object ..\..\..\product\VS2005\libs\\Standalone.exp
1>..\..\..\product\VS2005\libs\\Standalone.exe : fatal error LNK1169: one or more multiply defined symbols found
Run Code Online (Sandbox Code Playgroud)
我使用相同的VS2005编译器编译了SDL2d.lib.我最初的想法是,我为这些项目设置了不匹配的运行时库设置.但是在检查后它们都被设置为多线程调试.
我刚刚注意到上面的链接器输出似乎在创建Standalone.exe之前创建了Standalone.lib和Standalone.exp.我不知道它为什么要制作.lib和.exp
出现此错误的任何其他原因?
谢谢
我正在尝试编译Haxe类而不使用构建hxml文件定义入口点.
我的文件夹结构如下所示:
root
|
___src
|___Test.hx
|
___build.hxml
Run Code Online (Sandbox Code Playgroud)
Test.hx 具有以下内容:
package foo;
class BarLib
{
public function new() {}
public function test() {
return "Hello from BarLib!";
}
}
Run Code Online (Sandbox Code Playgroud)
build.hxml 看起来像这样:
-cp src
--macro "include('foo')"
-js test.js
Run Code Online (Sandbox Code Playgroud)
然后我haxe build.hxml从创建文件的根文件夹运行test.js,但其内容几乎为空:
// Generated by Haxe 3.3.0
(function () { "use strict";
})();
Run Code Online (Sandbox Code Playgroud)
似乎无法找到包裹foo.
我究竟做错了什么?