用Scala编程Xbox游戏

用Scala编程Xbox游戏,scala,xna,Scala,Xna,我在XNA论坛上问过这个问题,但我想,因为那里的大多数人都会专攻C#,所以我在这方面没有得到太多帮助 我有一些用Scala编写的游戏代码。目前我将所有内容编译成Java字节码,但Scala编译器有一个.Net版本。考虑到这一点,并且由于模块化设计通常是良好的实践,我已经编写了一个图形界面,现在我使用一个OpenGLGraphics类来实现这个界面,它包含了我程序中的每一行OpenGL代码。在我的完美世界里,我可以将OpenGLGraphics类换成XNAGraphics类,在Xbox上运行我的游

我在XNA论坛上问过这个问题,但我想,因为那里的大多数人都会专攻C#,所以我在这方面没有得到太多帮助

我有一些用Scala编写的游戏代码。目前我将所有内容编译成Java字节码,但Scala编译器有一个.Net版本。考虑到这一点,并且由于模块化设计通常是良好的实践,我已经编写了一个图形界面,现在我使用一个OpenGLGraphics类来实现这个界面,它包含了我程序中的每一行OpenGL代码。在我的完美世界里,我可以将OpenGLGraphics类换成XNAGraphics类,在Xbox上运行我的游戏,而无需进一步移植,好吧,也许需要一些修改,但我想这并不是那么简单


我做了一些谷歌搜索,但我没有找到任何人尝试这个的例子。我确实有XNA编程的经验,首先想到的问题是Visual Studio没有scala插件,XNA编程似乎非常以Visual Studio为中心,我至少可以让visual studio在XNA项目中编译非C代码,或者在没有visual studio的情况下设置XNA项目和内容管道吗?

通过创建C项目,右键单击项目打开属性页并选择“生成事件”,可以在IDE中配置任意的生成前和生成后事件。应该有一个“预生成事件命令行”和“后生成事件命令行”,在其中指定作为生成的一部分运行的任意命令。但是,可能更好的选择是手动创建构建文件,并使用
Exec
任务运行任意命令


有一些关于Scala与VS集成的讨论,其中还讨论了自定义MSBuild任务。

只要您能将编译器指向正确版本的XNA程序集,并且它生成正确的CLR程序集,那么您最好将所有游戏代码重构为.dll/assembly。然后,只需像平常一样创建一个常规的XNA项目,引用scala程序集,并引用scala程序集中的代码即可启动XNA游戏


诚然,这需要一些重构,但听起来你已经通过一个抽象的渲染器完成了大部分工作,所有这些

我认为.NET上的Scala目前还不能完全工作,尽管在这方面还有工作要做。