我在XNA论坛上问过这个问题,但我猜大多数人都会专注于C#我没有得到很多帮助
我有一些用Scala编写的游戏代码。我现在将所有内容编译为Java Bytecode,但Scala编译器具有.Net版本。考虑到这一点,并且因为模块化设计是一般的好习惯,我编写了一个Graphics接口,现在我使用OpenGLGraphics类实现这个接口,该接口包含我程序中的每一行OpenGL代码。在我完美的世界中,我可以将我的OpenGLGraphics类交换为XNAGraphics类,并在Xbox上运行我的游戏而无需进一步移植,好吧,也许有些修改,但我想这并不是这么简单。
我做了一些谷歌搜索,我没有找到任何人尝试这个的例子。我确实有使用XNA编程的经验,我想到的第一个问题是没有用于Visual Studio的scala插件和XNA编程似乎非常以Visual Studio为中心,我至少可以获得visual studio来编译非C#代码XNA项目或设置XNA项目和内容管道没有Visual Studio?
答案 0 :(得分:3)
您可以通过创建C#项目在IDE中配置任意的构建前和构建后事件,右键单击项目以打开属性页并选择“构建事件”。应该有一个“预构建事件命令行”和“构建后事件命令行”,您可以在其中指定要作为构建的一部分运行的任意命令。但是,可能更好的选择是手动创建MSBuild构建文件并使用Exec
任务来运行任意命令。
有一些关于Scala与VS here集成的讨论,其中还讨论了自定义MSBuild任务。
答案 1 :(得分:0)
只要您可以将编译器指向正确版本的XNA程序集,并且它产生正确的CLR程序集,那么您最好的选择是将所有游戏代码重构为.dll /程序集。然后像往常一样制作一个普通的XNA项目,引用你的scala程序集,然后引用scala程序集中的代码来启动XNA游戏。
可以肯定的是,它需要一些重构,但听起来你已经完成了大部分工作,因为它有一个抽象的渲染器和所有这些