Tag: xna

无法在Visual C#2010 Express中访问构建配置管理器或构建配置

全文 通常,当我安装Visual C#2010 Express时,我要做的第一件事就是切换到专家设置。 这使我可以访问构建配置和相应的管理器。 这最近的装置似乎行为不端。 我创建的第一个项目是XNA 4.0(刷新)项目。 我导入了一些旧代码,切换到专家设置,并确认我能够访问构建配置管理器和构建配置工具栏。 但是,当我打开项目属性并切换到Build选项卡时,无法找到正常的Configuration和Platform下拉列表。 此外,即使Debug在工具栏/管理器中被选为活动状态,也明确使用了Release设置。 我尝试了从重新启动Visual Studio到手动编辑.csproj XML的所有内容 – 顺便说一下,它将Debug标记为活动配置:not Release。 有趣的是,无论构建配置的顺序如何,如果存在Release,那么这将是项目属性中实际处于活动状态的配置(未从工具栏的下拉列表中选择)。 请记住,出于某种原因,通常出现在项目属性页面上的下拉列表不存在。 没有运气,我在一个单独的解决方案中创建了两个新项目:一个控制台应用程序和一个WinForms应用程序。 这次,构建配置管理器甚至没有出现在Build菜单中,并且工具栏中的下拉列表被禁用,好像我甚至没有打开解决方案。 我进行了搜索和搜索,但是我找不到这种行为的解释或解决方案。 注意:我确实可以通过MSDN访问Visual Studio 2010,因此如有必要,升级是一种可行的解决方案。 TL;博士 是的,我已切换到专家设置。 Windows 8 Pro,最新 Fresh-ish Visual C#2010 Express安装 XNA 4.0刷新 问题 新的XNA项目: 切换构建配置对实际配置没有影响; 尽管如此,它始终坚持释放。 在项目属性 – > Build中,不存在构建配置/平台的下拉列表。 新的控制台/ WinForms项目: Build Configuration Manager不在Build菜单中。 构建配置工具栏已禁用下拉列表,并且未选择任何内容。 已经尝试过了 删除发布配置 效果:切换到调试 重新创建发布配置 效果:删除时切换到Debug,然后在重新创建时切换回Release […]

如何从用户的计算机加载图像

是否可以从用户计算机加载图像到XNA游戏? 例如,我想加载“C:\ Images \ Box.png”来实现sprite纹理。 可能吗? 如果有,怎么样?

最快的类型比较?

以下事件可能每帧被调用数百次。 public bool OnCollision(Body body1, Body body2) { if(body2.Tag is Dog) ((Dog)body2.Tag).Bark(); } 我知道使用“is”会导致演员表演,然后当我想用它做某事时,再次演出。 有没有更有效的方法来检查类型? 我做了一个控制台应用程序尝试“if(body2.Tag.GetType()== typeOf(Dog))”但它似乎比使用“是”更慢。 谢谢。

WPF与XNA一起呈现数千个精灵

我需要渲染数千个用线条相互链接的椭圆。 在WPF应用程序中呈现它的最佳方式(在性能方面)是什么。 WPF Canvas的绘画比XNA绘画更糟糕吗? 实际上,隐藏的问题是:是否可以在WPF主机内进行一些xna渲染? 我看到一些使用无边框xna窗口覆盖的示例,但没有原生解决方案…… 谢谢,Aurélien

在XNA中绘制简单的圆圈

我想绘制一个2d,填充的圆圈。 我到处寻找,似乎无法找到任何甚至可以远程帮助我绘制圆圈的东西。 我只想在canvas上指定高度,宽度和位置。 谁知道怎么样? 谢谢!

游戏编程和事件处理程序

我没有编写游戏大约10年(我的最后一次经历是DJGPP + Allegro),但我想我会在周末看看XNA,看看它是如何形成的。 我印象非常深刻,但是当我继续拼凑游戏引擎时,我有一个(可能)基本问题。 您应该依靠C#的代表和活动来推动游戏多少? 作为应用程序程序员,我大量使用委托和事件,但我不知道这样做是否有很大的开销。 在我的游戏引擎中,我设计了一种“追逐凸轮”,它可以附加到一个物体上,然后重新计算它相对于物体的位置。 当对象移动时,有两种方法可以更新追逐凸轮。 在主游戏循环中有一个“UpdateCameras()”方法。 使用事件处理程序,并使chase cam订阅object.OnMoved。 我正在使用后者,因为它允许我将事件链接在一起并很好地自动化引擎的大部分。 突然之间,巨大而复杂的东西会落到少数3-5线事件处理程序中……这是一种美。 但是,如果每纳秒触发的事件处理程序变成一个主要的减速,我将删除它并采用循环方法。 想法?

如何在XNA中暂停重绘?

我制作了一个XNA图像查看器,但它总是重绘场景,即使它没有改变,而且它让我的上网本烧得像地狱一样,所以我希望它在没有任何变化时暂停绘图。 将帧率降低到1是保持冷却的一种方法,但它会导致输出滞后。 如何在没有输入的情况下阻止重绘? 这个问题已经解决了,但是发现了另一个问题 – 游戏在窗口聚焦时消耗了大量的CPU,但是当它不是时,它只需要大约1%的CPU。 有关如何解决此其他问题的详细信息,请参阅此问题: 如何在没有值得计算的情况下减少XNA游戏的CPU使用率?

初始化bool会干扰我的逻辑

我正在研究这种处理碰撞检测的方法。 我有一个方向bool被初始化为true的问题。 有时,当射击一个物体时,角度会反转,因为它期望bool是假的。 如果对象最初瞄准左侧(在我的代码中介于0和350之间),那么bool应该是真的。 如果它是针对右边(350到700之间),那么bool应该是假的。 如何在不干扰后续碰撞检测的情况下将初始bool设置为适当的true / false值? 我认为问题是当我尝试检查方向应该是什么时,然后设置它,我无意中对对象施加约束。 我无法弄清楚如何将两者分开。 理想情况下,0到350之间的检查以及350到700之间的检查应该只发生一次,但每次调用方法时都会检查它们,这会导致问题。 //Move bubble public void MoveBubble(Bubble bubble, Vector2 distance) { if (bubble.stop == false) { velocityX = speed * distance.X; velocityY = speed * distance.Y; bubble.X += velocityX; //Problem section if (bubble.Y > 0 && bubble.Y 350 && bubble.Y < 700) direction = false; //End […]

平铺图碰撞检测

我一直在查看其他问题,但似乎无法解决这个问题。我在自定义tilemap加载器中使用XNA。 这是代码。 http://pastebin.com/cuatQHTb using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; using Microsoft.Xna.Framework.Net; using Microsoft.Xna.Framework.Storage; namespace Pressure { public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; Texture2D player; Vector2 pos = Vector2.Zero; Vector2 playersp = new Vector2(50.0f, 50.0f); Texture2D road1; Texture2D […]

在C#/ XNA中录制实时video流

我有一个项目,将网络摄像头流渲染到纹理上。 我想知道是否有办法,无论是通过DirectX的音频/videofunction还是直接通过XNA我可以将流录制成avi文件格式? 在此先感谢您的帮助。