很长一段时间以来,C++一直是主导游戏开发的语言。许多AAA质量的3D引擎可满足任何预算。我的问题是,随着XNA的兴起,C#和.NET框架的定位是否足以接替新的标准游戏开发平台?显然,XNA框架(Windows、Xbox、Zune)固有的跨平台特性有其优势,但这些优势是否足以吸引大型游戏开发工作室切换平台?就个人而言,我在为新项目使用C#/XNA和通过jMonkeyEngine使用Java之间左右为难。我非常希望我的游戏可以移植到多个平台,而我所熟悉的能够实现这一点的语言只有C#和Java。我很想看到由OpenGL提供支持并在Mono上运行的XNA代码库的实现,但我认为目前这只是一厢情
我正在开发游戏。我想在发生某些事情时突出显示屏幕上的一个点。我创建了一个类来为我做这件事,并找到了一些代码来绘制矩形:staticprivateTexture2DCreateRectangle(intwidth,intheight,Colorcolori){Texture2DrectangleTexture=newTexture2D(game.GraphicsDevice,width,height,1,TextureUsage.None,SurfaceFormat.Color);//createtherectangletexture,,butitwillhavenocolor!lets
我正在开发游戏。我想在发生某些事情时突出显示屏幕上的一个点。我创建了一个类来为我做这件事,并找到了一些代码来绘制矩形:staticprivateTexture2DCreateRectangle(intwidth,intheight,Colorcolori){Texture2DrectangleTexture=newTexture2D(game.GraphicsDevice,width,height,1,TextureUsage.None,SurfaceFormat.Color);//createtherectangletexture,,butitwillhavenocolor!lets
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion好的,所以我最终基于XNA编写了自己的游戏引擎,我只是想知道我还需要什么来制作一个完整的引擎。这是引擎中的内容:物理学(先知物理学)粒子引擎(水星项目)2D相机输入处理屏幕管理(菜单、暂停屏幕等)Sprite(动画、Sprite表)还有XNA的东西,比如Sound。我是否遗漏了任何可能对游戏引擎至关重要的东西?
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion好的,所以我最终基于XNA编写了自己的游戏引擎,我只是想知道我还需要什么来制作一个完整的引擎。这是引擎中的内容:物理学(先知物理学)粒子引擎(水星项目)2D相机输入处理屏幕管理(菜单、暂停屏幕等)Sprite(动画、Sprite表)还有XNA的东西,比如Sound。我是否遗漏了任何可能对游戏引擎至关重要的东西?
在XNA游戏中创建视差效果的最佳方法是什么?我希望相机在我的Sprite在世界各地移动时跟随它,这样我就可以构建缩放、平移、摇动和其他效果等效果。任何人都有一个很好的例子来说明如何做到这一点,最好是在GameComponent中? 最佳答案 所以我综合使用上面的教程来解决这个问题,并创建了下面的类。它向你的目标补间并跟随它。试试吧。publicinterfaceIFocusable{Vector2Position{get;}}publicinterfaceICamera2D{//////Getsorsetsthepositionof
在XNA游戏中创建视差效果的最佳方法是什么?我希望相机在我的Sprite在世界各地移动时跟随它,这样我就可以构建缩放、平移、摇动和其他效果等效果。任何人都有一个很好的例子来说明如何做到这一点,最好是在GameComponent中? 最佳答案 所以我综合使用上面的教程来解决这个问题,并创建了下面的类。它向你的目标补间并跟随它。试试吧。publicinterfaceIFocusable{Vector2Position{get;}}publicinterfaceICamera2D{//////Getsorsetsthepositionof
编辑:问题现已解决,我在此处包含详细信息以帮助遇到此问题的其他人,因为解决起来并不那么简单。基本上,它归结为使用开发分支进行更新。第一步是检查monogame开发分支,这将不包括thirdparty/libs子模块,因此您还需要更新它以便能够编译源代码。在此之后,您可以编译MonoGame.Framework.Linux.sln,并更新项目中的引用以指向新的dll文件。这仍然不会加载效果文件,除非它们是使用最新版本的内容处理器创建的,因此您需要转到Windows计算机,检查开发分支(和库)-或者复制它们从你的linux系统-然后编译MonoGame.ContentPipeline/Co
编辑:问题现已解决,我在此处包含详细信息以帮助遇到此问题的其他人,因为解决起来并不那么简单。基本上,它归结为使用开发分支进行更新。第一步是检查monogame开发分支,这将不包括thirdparty/libs子模块,因此您还需要更新它以便能够编译源代码。在此之后,您可以编译MonoGame.Framework.Linux.sln,并更新项目中的引用以指向新的dll文件。这仍然不会加载效果文件,除非它们是使用最新版本的内容处理器创建的,因此您需要转到Windows计算机,检查开发分支(和库)-或者复制它们从你的linux系统-然后编译MonoGame.ContentPipeline/Co
我从C#和XNA开始。在“游戏”类的“更新”方法中,我有以下代码:t=Texture2D.FromFile([...]);//tisa'Texture2Dt;'加载小图像。“更新”方法像循环一样工作,因此调用此代码一秒钟内多次。现在,当我运行我的游戏时,它需要95MB的RAM,然后慢慢地增加到大约130MB(由于我发布的代码,没有这个代码,它仍然保持在95MB),然后立即增加到大约100MB(垃圾收集?)然后又慢慢地增加到130MB,然后立即增加到100MB,依此类推。所以我的第一个问题:您能解释一下为什么(如何)这样工作吗?我发现,如果我将代码更改为:t.Dispose()t=Tex