Articles of XNA

在Windows上的XNAnetworking

XNA的内置networkingfunction是什么? 是否有可能在Windows中使用XNA的内置networking? 如果是这样,有什么限制?

如何在UWP项目中查看文件更改?

我正在将我的游戏从完整桌面移植到UWP。我需要解决的一件事是如何将纹理,着色器等加载到UWP版本的游戏中。 在桌面版本中,我使用FileSystemWatcher来执行此操作,但是UWP中不存在FileSystemWatcher,即使在我完全控制的目录中也是如此。 UWP是否有相同的内容? 在UWP中使用有限的API来实现这个最好的方法是什么?

有没有一种廉价的方法来在每个帧的基础上从RenderTarget2D传输颜色数据?

直到最近,我们的游戏通过从场景背景纹理的一部分获取颜色数据来检查碰撞。 这个效果非常好,但随着devise的改变,我们需要检查多个纹理,并决定将这些全部渲染到一个RenderTarget2D,并检查碰撞。 public bool TouchingBlackPixel(GameObject p) { /* Calculate rectangle under the player… SourceX,SourceY: Position of top left corner of rectangle SizeX,SizeY: Aproximated (cast to int from float) size of box */ Rectangle sourceRectangle = new Rectangle(sourceX, sourceY, (int)sizeX, (int)sizeY); Color[] retrievedColor = new Color[(int)(sizeX * sizeY)]; p.tileCurrentlyOn.collisionLayer.GetData(0, sourceRectangle, retrievedColor, 0, retrievedColor.Count()); /* Check collisions […]

Windows 7或Windows Vista与XNA游戏开发

我在Windows XP 32位。 我想用一本书来学习XNA,顺便推荐Windows Vista或Windows 7。 转移到这些是值得的吗? 谢谢

如何设置GraphicsDevice.GraphicsProfile

在传统的XNA应用程序中,通过应用程序属性设置此值。 默认情况下,这个值被设置为HiDef ,至less在我目前使用的机器上。 但必须设置为Reach运行”。 我的问题是,我没有find任何方法来有效地改变这个价值使用monogame。 属性窗口显然是不一样的XNA,我没有find任何configuration值。 在Game构造函数或LoadContent方法中更改代码中的值不能解决我的问题。 PS:我原来的问题,我认为是由这GraphicsDevice.GraphicsProfile ,是https://stackoverflow.com/questions/11900957/monogame-draw2d-sample-accessviolation-exception

用手机存储器中的歌曲实现播放列表

我一直在努力解决与我的媒体播放器Windows Phone(7)应用程序的问题。 问题是,我似乎无法执行播放列表。 我想要做的是播放媒体库中的歌曲。 这篇文章似乎毫无意义。 我试图进入SongCollection类,并找出如何创build更多的这些东西。 这似乎是不可能的(没有构造函数,不能施放它,不能inheritance它)。 之后,我尝试在运行存在于我的应用程序中的背景audio代理的进程上获得一个对象(直到我发现它是多余的),并一次向媒体播放器提供一首歌曲。 问题是,我不知道什么时候媒体播放器停止播放。 只要我的应用程序处于前台,它就可以正常工作,但是如果不是,所有事情都停止,只有媒体播放器才能继续。 有没有办法我没有想出来? 在上面的文章中,他们build议Zune媒体队列(我认为是MediaPlayer.Queue属性)和我可以实现的各种东西之间有一个链接,但是我只是想不出一个办法去实现它。

在PC上Xbox上的Letterboxing和缩放

有没有一种方法可以基本上以1080p(或720p)为基础开发我的XNA游戏作为我的默认分辨率,然后根据设置的分辨率将游戏中的所有内容缩放到合适的大小,而不必在每个Sprite中设置缩放因子Draw()方法? 我的想法是,我可以根据1080p的分辨率开发所有graphics,configuration坐标等,但是对于XBOX,只需将res设置为720p并缩小(以便XBOX将所有内容都视为720,从而处理开发人员文档中提到的所有分辨率)和PC上的分辨率或宽高比,自动对非16:9分辨率的视图进行分组。 我已经有了我的游戏设置,所以spritebatch.begin()和end()在所有其他Draw调用的最高级别被调用,所以我可以在技术上传递缩放matrix,但是每当我这样做会做一些奇怪的事情,比如让视图偏离中心,或者只占用屏幕的四分之一。 有没有实现这一目标的最佳实践方法?

XNA的CPU使用率很高

我刚刚注意到,当我编译并运行一个新的XNA 4.0游戏时,其中一个CPU线程以100%的速度运行,并且帧率下降到54 FPS。 奇怪的是,有时候它的工作速度是60 FPS,但是却只能达到54 FPS。 我之前没有注意到这个行为,所以我不知道这是否正常。 我卸载了我的杀毒软件,并重新安装了XNA Game Studio,XNA Redistributable和.NET Framework 4。 如果我将IsFixedTimeStep设置为false,则游戏运行速度为60 FPS,CPU使用率最低(1-2%)。 但据我所知,这需要我使用ElapsedGameTime来进行速度计算,但是我不知道该怎么做,因为我对XNA还是比较陌生的。 但有人说,将其设置为false会减less生涩的animation。 我已经检查了这个论坛主题 ,但没有人find一个好的解决scheme。 有没有人遇到过这个问题? 编辑:我做了一些更多的研究,我实现了一个FPS计数器(直到现在,我用Fraps测量),我的计数器显示游戏运行在60 FPS(与IsFixedTimeStep = true),所以这解决了FPS问题,但高CPU使用率仍然存在。 这有可能发生在每个人身上吗?