Questions tagged «xna»

XNA是Microsoft的一种游戏框架,允许部署Windows,Windows Phone和Xbox 360。

2
有效消除游戏中的死物?
我正在使用for循环或foreach循环(无关紧要)来遍历所有需要更新或绘制的对象。但是,当某个对象被杀死时,我希望它再次从集合中删除。 为此,我将对象添加到一个死对象列表中,然后,在绘制并更新了所有内容之后,我将遍历此列表中的所有内容,并将列表中的对象也从原始源中删除。 有更好的方法吗?
10 xna  c#  xna-4.0 

2
XNA游戏服务和荣耀的全局变量之间有什么区别?
该Microsoft.Xna.Framework.Game班有一个服务属性,它允许程序员通过提供一流的类型和类Add方法的一个实例,一个服务添加到他们的游戏。 现在,不必将传递AudioComponent给需要它的所有类和方法,而只需传递Game实例并查找服务即可。(服务定位器) 现在,由于游戏具有许多服务(GraphicsDevice,SceneGraph,AudioComponent,EffectsManager等),因此您现在基本上将Game传递给了一切。 那么,为什么不只将这些实例设置为Singleton呢?好吧,因为单例很糟糕,因为它们具有全局状态,可以防止测试,并使您的设计更加脆弱。同样,服务定位器被视为对许多人的反模式,因为您传递的是服务定位器(游戏),而不是将依赖项传递给对象,该服务定位器将此类与其他服务耦合在一起。 那么,为什么在XNA和游戏开发中推荐“服务”呢?是因为游戏不同于常规程序,并且与它们的组成部分高度交织在一起,并且必须通过类的功能所必需的每个组成部分都非常繁琐吗?游戏服务是游戏设计中必不可少的邪恶吗?是否有其他选择不涉及冗长的参数列表和耦合?
10 xna  c#  architecture 

5
如何模拟碎玻璃?
我需要用扔石头通过玻璃窗进行模拟。我该怎么做? 我的意思是,我当时正在考虑在3D Studio Max 2012中制作石头和玻璃的3D模型,将玻璃破碎,然后将两者导出为.x模型。然后在XNA中制作动画-编写我自己的物理引擎。有可能吗?撞击后有可能破坏XNA中的玻璃吗?还是应该在3DS Max中这样做?“破坏玻璃”是指将一些以前破碎的玻璃钻头彼此断开,因为取决于石头的开始速度和重量以及玻璃的电阻(硬度?)(所有用户定义),这些钻头将与玻璃断开连接。彼此以不同的方式。
10 xna  physics  xna-4.0  3dsmax 

3
XNA中渲染大量地形的有效方法
我正在创建一个XNA游戏,该游戏需要巨大的玩家空间。当前,我正在使用的测试高度图是4096x4096,并保存为4位BMP。 我要尝试的是获取巨大的高度图文件,然后在游戏中进行渲染。我遇到的问题是,将整个地形立即加载到内存中效率很低,因为它将占用大部分可用内存。 我遇到的另一个问题是,由于XNA中设置了硬限制,因此无法在一个图元中全部渲染地形。 话虽如此,我遇到了许多解决方案,下面列出了所有这些解决方案: 基于当前用户的位置进行渲染-基本上不管用户在世界上的方向如何,都围绕用户绘制一个正方形。这也不是我想要的,因为您仍在渲染用户看不到的空间。 根据用户的方向和位置进行渲染-我找到了一个公式来检索一个三角形,该三角形应该具有应该绘制的高度图像素,但是事实证明这非常困难。 将地形分为多个块并渲染最接近用户的块-效率仍然不高,因为您仍在渲染人们看不到的块。而且它很费力,因为那时我必须将高度图分成几部分,而可伸缩性成为一个大问题。 在尝试了这些解决方案之后,我对如何做的想法一无所知。在人们告诉我执行这些复杂算法的地方,我已经收到了一些答案,但是我什至不知道该如何执行这些算法。 因此,基本上,我要求一种简单,直接的方法来以最高效率在XNA中渲染巨大的地形。 总的来说,我对游戏开发比较陌生,但是如果它看起来很有希望,我愿意研究。 更新1:研究了geoclipmapping方法后,我开始使用它进行编码。我完成了所有的数学运算,然后游戏开始运行。但是,它效率极低-对我而言,这可能是不好的编码。它以2FPS的速度运行,并使用了我CPU的整个核心。我将尝试改进代码,但我想需要更多帮助,因此这里是 Terrain manager类的代码的Pastebin。如果可以提高效率,我将在稍后发布更多结果。
10 c#  xna 

2
如何制作独立于分辨率的系统?
我正在对此空白。我当然可以将东西固定在边缘上,这将使我的UI分辨率独立...直到它变化太大以致图形太小。如何在需要时适当缩放?缩放时如何保持图形正确比例?如果分辨率与16:10的比例不同,我不希望它们拉伸。 是否有一种经过验证的真实方法?由于此问题,视频播放器显示黑色边框,这是否可以适当解决?
10 xna  resolution 

3
在XNA Framework上构建的等距游戏有哪些重要且有用的资源?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 6年前关闭。 我目前正在使用Microsoft XNA Framework开发等距游戏。我正在寻找可用于使该项目成功完成的资源,例如等距引擎,物理引擎,子画面引擎(用于等距游戏),事件处理程序等。 任何投入将不胜感激。

1
是否可以在当前的3D电视中使用XNA + Xbox 360?
我对在新的Sony 3D电视(偏振光而不是红色/绿色/蓝色立体浮雕眼镜)上使用3D感兴趣。当前XBox 360上的XNA是否可以实现? 或者,看起来好像没有一个相对琐碎的PS3开发人员。现在解决XNA问题,因此我对XNA和360感兴趣。 问候,
10 xna  3d  xbox360 

1
如何将物理从几何着色器整合到程序生成的世界中?
本质上,我想消除从CPU到GPU产生相干噪声的需要。从那里,我还想使用此噪声作为体素点的密度来生成三维世界的地形。在此之后,我想获取这些密度并将它们代表世界的地形多边形化(生成顶点)。 一切都很好。但是,我也想实时地动态改变世界。一旦达到这一点,尝试将顶点返回给CPU来执行诸如碰撞检测之类的事情,以及我想涉及CPU而不是GPU的所有游戏计算等问题。 所以问题是:如何将顶点的子集返回给CPU以处理冲突? 还有一个问题:是否有一种简单的方法来获取一组顶点并在GPU上从中生成索引? 对于这些不同的东西应该使用哪种着色器,我感到困惑。我听说有人使用像素着色器来收集密度,然后使用几何着色器来处理从顶点生成的地形,然后以某种方式合并顶点着色器来进行动态变形。 我正在使用C#4.0,.NET 4.0和XNA Game Studio 4.0。
10 c#  xna  shaders 

1
使用XNA Framework的3d游戏开发者的终极初学者教程?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 3年前关闭。 我正在寻找一个从1楼开始进行游戏开发的教程,并逐步过渡到3D游戏开发的中级/专家级。我真的很想加入3D游戏开发人员的行列,并且在空闲时间里已经尝试了一段时间,但是有时我所知甚少,我什至不知道要用什么术语来正确表达问题。 理想情况下,我希望找到XNA Framework的教程,而我对XNA的经验很少。 我已经开发了多年了,真的不需要语言方面的帮助。我知道我需要帮助的是诸如渲染,Matrix确切表示的内容以及框架库中的其他内容。我什至不知道图书馆里有什么。
10 xna  xna-4.0 

3
XNA中的圆角?
有什么方法可以通过图元(直线)在XNA中渲染的矩形上制作圆角?我想让UI变得比以前更漂亮,并且我希望代码灵活,并且不涉及太多纹理。
10 xna 


6
在XNA中将Game1静态化是一个坏主意吗?
将我的Game1课程设为静态真的不是一个好主意吗?就像目前在我的Game1课堂上一样,我有一个名为的类TileHandler,负责处理与我当前的那组瓷砖有关的AnimalHandler所有事情,并且处理所有我的动物(令人惊讶地)。 现在,如果我AnimalHandler要检查瓷砖是否TileHandler从那时起便是可步行的,这会引起问题,或者我必须将可步行瓷砖的列表传递到中AnimalHandler,而不希望这样做。 更简单的方法是将其设置为Game1静态,然后AnimalHandler直接运行Game1._tileHandler.WalkableTile(position)。 现在,我看不到有任何立即出错的问题或会导致任何问题的任何事情,但是我只是刚刚开始使用静态类,所以,有什么知识渊博的人是否会看到任何大的原因来说明这是一个坏主意?
10 xna  c#  architecture 

2
如何在XNA中查找窗口大小
我只是想知道是否有一种方法可以找出XNA中的窗口大小。我不想将其设置为特定大小;我想知道它当前自动显示为什么尺寸。有没有办法找到这些信息? 我意识到我可能应该在进行游戏之前就已经找到了这些信息(或自己手动设置了这些信息),但是我是一个新手,现在希望在我已经投入的范围内工作。谢谢!
10 xna 

2
延迟渲染引擎的场景图
作为学习练习,我编写了一个延迟渲染引擎。现在,我想向该引擎添加一个场景图,但是我有点困惑如何做到这一点。 在普通的(前向渲染引擎)上,我只将所有项目(全部实现IDrawable和IUpdateAble)添加到场景图中,而不是先遍历场景图宽度并在任何地方调用Draw()。 但是,在延迟渲染引擎中,我必须分开进行绘图调用。首先,我必须先绘制几何图形,然后绘制阴影投射器,然后绘制灯光(所有灯光都绘制到不同的渲染目标),然后再将它们组合在一起。因此,在这种情况下,我不能只遍历场景图并仅调用draw。我的观察方式要么是我要遍历整个场景图3次,检查必须绘制哪种对象,要么必须创建3个以某种方式相互连接的独立场景图。这两个似乎都是较差的解决方案,我想使场景对象更透明。 我想到的另一种解决方案是像往常一样通过场景图,然后将项目添加到3个单独的列表中,分离几何图形,阴影投射器和灯光,然后迭代这些列表以绘制正确的内容,这更好吗?明智的每帧重新填充3个列表?
10 xna  c#  scene-graph 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.