Questions tagged «xna»

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


10
使飞船飞快的效果
我有一个太空飞船,并且创建了一个“加速”功能来加速我的太空飞船,我应该实现什么效果才能产生高速感? 我当时想使除飞船之外的所有物体变得模糊不清,但我认为会丢失一些东西。有任何想法吗? 顺便说一句。我正在使用XNA C#,但如果您对XNA不熟悉,则描述某些效果仍然有用。 游戏是3D游戏,我附上了游戏的一些印刷屏幕 这是正常模式(无增强) 这是升压模式(当相机以正常速度加速时,飞行器向前加速,非升压速度)

1
使模型面向目标
我有两个对象(目标和播放器),都具有位置(Vector3)和旋转(四元数)。我希望目标旋转并正对着玩家。目标射击时,应该向玩家射击。 我已经看到了很多关于播放器的示例,但是我不希望增量旋转,好吧,我想,只要我可以将播放器设置为100%,并且只要它确实起作用就可以。 仅供参考-我无法使用位置和旋转来做很多其他事情,而且除了我无法弄清楚的最后一件作品外,其他一切都很好。 代码示例在Target的类中运行,Position =目标位置,Avatar =玩家。 编辑 我现在正在使用他提供的Maik的C#代码,效果很好!
28 xna  c#  3d  models  quaternion 

10
在Pong中,当球从球拍反弹时,如何计算球的方向?
我正在努力解决游戏开发中的这个Hello World-y问题。我已经在XNA中创建了一个TicTacToe游戏,所以我想下一步将是Breakout克隆。 请记住,我没有在游戏编程甚至什么数学,我应该适用于那些知识。这就是为什么我问这个问题。 问题:如何确定球击中屏幕底部的桨时应该反弹的位置? 我以为会是这样的: 捕获传入球的速度和角度。 检测它触摸条的位置(最左边,最右边,中间),并据此使其在触摸外部区域时具有更高的速度。 这就是我卡住的地方。呵呵。 有什么见解吗?我意识到这不是一个简单的答案类型问题,但是我确信这是每个​​人在某个时候都面临的问题。 我正在阅读该网站上推荐的《线性代数》一书,但我仍然不知道是否应该在这里应用它。
28 xna  c#  2d  mathematics  physics 

4
自上而下的RPG运动(带校正)?
我希望我们都曾经玩过《塞尔达传说:通往过去的链接》,如果我记错了,请纠正我,但我想模仿一下这种2D,自上而下的角色移动。在其他游戏中也可以做到这一点,但是我认为这种引用是最简单的。更具体地说,我所谈论的移动和校正类型是: 浮动运动不仅限于像口袋妖怪和其他游戏之类的基于瓷砖的运动,轻按一下运动板即可在该基本方向上移动一个正方形。这种浮动运动应该能够实现对角线运动。 如果您向西走,并且以东北/西南方式到达对角墙,即使您继续按住控制器的左(西)键,您也将被校正为西南运动。这应适用于在两个方向上校正的两个对角线。 如果您距离直走门或走廊几步之遥,那么您会被校正为穿过大厅或沿着走廊走,即撞到角落会导致您被推入大厅/门。 我一直在寻找有效的方法来实现这一目标,并且没有运气。明确地说,我说的是人物角色的动作,而不是NPC的动作。他们的资源可用于这种运动吗?Wiki或其他内容上解释的方程式或算法? 我正在使用XNA Framework,其中有什么可以帮助您的吗?
27 xna  2d  rpg  movement 

3
团队如何防止覆盖源文件中的工作?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 4年前关闭。 在我看来,有一种可能性,例如由多个人同时处理游戏引擎时,如何防止覆盖? 假设开发者一在工作,Audio.cpp而开发者二也在工作Audio.cpp,这在大型团队中通常如何进行管理以应对覆盖?(换句话说,要阻止开发人员2打开文件,直到开发人员1完成)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

5
对游戏对象的每个实例使用DrawableGameComponent的缺点是什么?
我在很多地方都读过,应该将DrawableGameComponents保存为诸如“关卡”之类的东西或某种类型的管理器,而不是使用它们,例如,用于字符或图块(就像这个人在这里说的)。但是我不明白为什么会这样。我读了这篇文章,对我来说很有意义,但这只是少数。 我通常不会过多地关注这类事情,但是在这种情况下,我想知道为什么大多数人都认为这不是路要走。也许我想念一些东西。

3
有更快的正弦功能吗?
我正在研究3D Perlin噪声。C#数学库似乎对我需要的东西来说是过高的,因为它的大多数功能都使用双精度。我在多个地方使用Math.Sin()来产生噪声。有谁知道更快的正弦函数?
25 xna  c#  mathematics 

7
多线程2D重力计算
我正在开发一个太空探索游戏,目前我已经开始研究重力(在XNA的C#中)。 重力仍然需要调整,但是在我能够做到这一点之前,我需要在物理计算中解决一些性能问题。 这使用了100个对象,通常不进行物理计算就可以渲染其中的1000个对象,而FPS则超过300 FPS(这是我的FPS上限),但是超过10个左右的对象会将游戏(及其运行的单线程)带入在进行物理计算时会屈膝。 我检查了我的线程使用情况,发现第一个线程正在杀死所有工作,因此我认为只需要对另一个线程进行物理计算即可。但是,当我尝试在另一个线程上运行Gravity.cs类的Update方法时,即使Gravity的Update方法中没有任何内容,游戏仍然会降低到2 FPS。 Gravity.cs public void Update() { foreach (KeyValuePair<string, Entity> e in entityEngine.Entities) { Vector2 Force = new Vector2(); foreach (KeyValuePair<string, Entity> e2 in entityEngine.Entities) { if (e2.Key != e.Key) { float distance = Vector2.Distance(entityEngine.Entities[e.Key].Position, entityEngine.Entities[e2.Key].Position); if (distance > (entityEngine.Entities[e.Key].Texture.Width / 2 + entityEngine.Entities[e2.Key].Texture.Width / 2)) …

3
遮罩XNA中2D子画面的最佳方法?
我目前正试图掩盖一些精灵。我没有用语言解释它,而是制作了一些示例图片: 遮盖区域(白色) 现在,需要裁剪的红色精灵。 最终结果。 现在,我知道在XNA中,您可以做两件事来做到这一点: 使用模板缓冲区。 使用像素着色器。 我试图做一个像素着色器,基本上就是这样做的: float4 main(float2 texCoord : TEXCOORD0) : COLOR0 { float4 tex = tex2D(BaseTexture, texCoord); float4 bitMask = tex2D(MaskTexture, texCoord); if (bitMask.a > 0) { return float4(tex.r, tex.g, tex.b, tex.a); } else { return float4(0, 0, 0, 0); } } 这似乎可以裁剪图像(尽管一旦图像开始移动就不正确),但是我的问题是图像一直在移动(它们不是静态的),因此这种裁剪必须是动态的。 有没有一种方法可以更改着色器代码以考虑其位置? 另外,我已经读过有关使用模板缓冲区的信息,但是大多数示例似乎都取决于使用rendertarget,我真的不想这么做。(我已经在其余的游戏中使用了3或4,并且在其上面再添加一个似乎过大了) 我发现唯一不使用Rendertargets的教程来自Shawn …
24 xna  2d  hlsl  masking 

7
优化重力计算
我有一堆大小和速度各异的物体,它们相互吸引。每次更新时,我都必须遍历每个对象并合计由于每个其他对象的重力而产生的力。它的伸缩性不是很好,是我在游戏中发现的两个主要瓶颈之一,我不确定该如何提高性能。 这感觉就像我应该可以提高性能。在任何给定时间,系统中大约99%的对象对对象的影响都可以忽略不计。我当然不能按质量对物体进行排序,而只能考虑前10个最大的物体或某些物体,因为力随距离的变化比随质量的变化大(方程沿的线force = mass1 * mass2 / distance^2)。我认为,最好的办法是考虑最大的物体和最接近的物体,而忽略世界另一端可能无法影响任何事物的数百个微小的岩石碎片,但要找出哪些物体是最近我有遍历所有的对象,他们的立场正在发生变化不断,所以这不是我只能做一次。 目前我正在做这样的事情: private void UpdateBodies(List<GravitatingObject> bodies, GameTime gameTime) { for (int i = 0; i < bodies.Count; i++) { bodies[i].Update(i); } } //... public virtual void Update(int systemIndex) { for (int i = systemIndex + 1; i < system.MassiveBodies.Count; i++) { GravitatingObject body …

4
如何处理2D中的角碰撞?
我正在写一个自上而下的2D XNA游戏。自从我第一次上学以来,我一直在尝试自己编写物理学和碰撞学知识。 每当我的玩家精灵角色试图移动到其边界与墙的边缘相交的位置时,我都会计算出反弹角(入射角=反射角),并让玩家反弹出墙并避免碰撞。 我很难弄清楚如何处理我的精灵同时与两个墙边相交的情况,尽管它碰到了一个角落。 我的代码当前告诉我,两个墙的边缘已经相交,但是没有碰到哪个边缘,因此没有反弹。 选择哪个边缘反弹的数学测试是什么?看到它的时候很简单,但是我正在努力寻找它的数学测试。


9
围绕精灵绘制轮廓的有效方法
我正在使用XNA对游戏进行编程,并且一直在尝试各种方法来对我的精灵实现“选定”效果。我遇到的麻烦是,在spritebatch中绘制的每个可单击对象均使用多个sprite绘制(每个对象最多可以由6个sprite组成)。 如果有人可以建议我如何为X像素的精灵添加轮廓,我将不胜感激(因此轮廓宽度可以是整个像素的各种数量)。 提前致谢, 格雷格
21 2d  xna  sprites 

2
使整个场景淡入灰度
当玩家失去一生时,我希望整个游戏屏幕变为灰度,而不是立即停止更新。我也希望它逐渐变灰而不是突然失去所有颜色。到目前为止,我发现的所有内容都是关于截屏并将其设为灰度,或将特定的纹理设为灰度。有没有一种方法可以将整个运动场和其中的所有对象更改为灰度,而无需遍历所有内容?
20 xna  c# 

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.