好吧,所以我最终编写了基于XNA的自己的游戏引擎,我只是想知道我还需要做什么来创build一个完整的引擎。 这是引擎中的内容: 物理(Farseer物理) 粒子引擎(Mercury Project) 2D相机 input处理 屏幕pipe理(菜单,暂停屏幕等) 雪碧(animation,雪碧表) 而XNA的东西就像Sound。 我是否错过了可能对游戏引擎至关重要的事情?
理想情况下,我需要实现WP7控件,该控件可以添加到任何XAML中,并显示dynamic的交互式3D场景。 目前,我已经通过XNA以共享模式实现了这个function,UI使用UIElementRenderer渲染在场景的顶部。 然而这个解决scheme是次优的,因为 应用程序必须呈现整个屏幕,因为在共享模式下,Silverlight本身不会绘制任何东西。 我找不到任何检测Silverlight控件需要更改其表示的方式,无论是由于用户交互还是animation。 只有在3D场景因此而改变时,才会呈现控件,所以它们缺less原生WP7应用程序的光滑外观和感觉。 那么,是否有一种方法可以在一个控件中渲染3D场景,并让Silverlightpipe理其余的UI?
在XNA游戏中创build视差效果的最佳方式是什么? 我希望相机跟随我的精灵,因为它移动到世界各地,这样我就可以build立像缩放,平移,摇晃和其他效果的效果。 任何人都有一个如何完成这个例子,最好在一个GameComponent?
这个问题是相关的,但不是重复的: 如何在Visual Studio 2012上安装XNA游戏工作室? 我读了上面提到的post,并且已经开放了xna项目,但是现在我有一个问题。 一些对XNA框架的引用没有find: Microsoft.Xna.Framework.Avatar Microsoft.Xna.Framework.GamerServices Microsoft.Xna.Framework.Net Microsoft.Xna.Framework.Storage Microsoft.Xna.Framework.Video 和所有引用到Microsoft.Xna.Framework.Content.Pipeline 没有这些,我不能编译或运行我所做的任何游戏。 我找不到包含这些的dll,或者我应该把它们放在哪里。
我目前正在尝试安装适用于Visual Studio Express 2013的XNA Game Studio。在实际安装XNA框架之前,我无意中运行了.vsix程序。 在安装并重新运行.vsix之后,我收到一条消息错误消息说已经安装了扩展。 这不是假的。 我已经尝试了很多东西来“删除”空的扩展名:进入%LocalAppData%\ Microsoft \ VisualStudio,并试图find扩展名,但没有find自己,例如。 我想知道我可以如何正确地卸载并重新安装框架。
我如何安装Visual Studio 2013的 MonoGame模板?
我已经阅读了一大堆涉及XNA的教程(还有各种各样的版本),在绘制图元时我还是有点困惑。 一切似乎真的很复杂。 有人可以使用代码向我们展示在屏幕上绘制一行或两行代码的最简单的XNA实现吗? 也许有一个简单的解释(包括样板)? 我不是一个游戏程序员,我有一点XNA的经验。 我的最终目标是在屏幕上绘制一些线条,最终我将通过旋转等手段进行转换。 然而,对于这第一步..我需要简单地画线! 我记得在我古老的OpenGL日子里,用几个方法调用绘制一条线就相当简单。 我应该简单地恢复使用非托pipedirectx调用?
我如何获得XNA的整个屏幕的宽度和高度?
我遇到了一个问题,那就是如何将inputstring(如“RED”)转换为C#中的实际ColortypesColor.Red 。 有没有一个好的方法来做到这一点? 我可以考虑为每种颜色types使用switch语句和case语句,但我认为这不够聪明。
我们正在使用XNA开发一个自顶向下的RPG游戏。 最近我们在编写代码来显示我们的地图时遇到了挫折。 在绘制地图时,用正常的变换matrix进行自顶向下的视图,一切似乎都很好。 当使用非平坦变换matrix(如顶部或底部挤压模拟深度)时,会出现相机更改位置时移动的黑色线(顶部或底部的行,左侧或右侧的列被挤压)。 移动和放置似乎是随机的。 (图片进一步向下。) 背景信息 地图由瓷砖组成。 原始纹理包含32×32像素的图块。 我们通过创build2个三angular形并在这些三angular形上显示原始纹理的一部分来绘制图块。 着色器为我们做这个。 有三层三angular形。 首先,我们绘制所有半透明和部分透明的瓷砖的所有不透明的瓷砖和所有不透明的像素,然后绘制所有半透明和部分透明的瓷砖和像素。 这工作正常(但是,当我们缩放浮点因子,有时颜色混合线位于瓷砖行和/或列之间)。 绘制状态 我们对所有拼贴使用相同的rasterizerState,并且在绘制纯色或半透明拼贴时我们在两个之间切换。 _rasterizerState = new RasterizerState(); _rasterizerState.CullMode = CullMode.CullCounterClockwiseFace; _solidDepthState = new DepthStencilState(); _solidDepthState.DepthBufferEnable = true; _solidDepthState.DepthBufferWriteEnable = true; _alphaDepthState = new DepthStencilState(); _alphaDepthState.DepthBufferEnable = true; _alphaDepthState.DepthBufferWriteEnable = false; 在阴影中,我们设置SpriteBlendMode如下: 第一固体层1使用 AlphaBlendEnable = False; SrcBlend = One; DestBlend = Zero; 所有其他固体和透明层(稍后绘制)使用 […]