首页
学习
活动
专区
圈层
工具
发布

Xna调试
EN

Stack Overflow用户
提问于 2009-02-04 17:24:18
回答 5查看 6.5K关注 0票数 7

我使用console.out.writeline()来打印属于XNA游戏中不同精灵的坐标。但几秒钟后,游戏开始变得非常慢,几乎停止。

(不写入控制台时,性能没有问题)。(精灵的位置在每个更新方法中都会写入)

有没有一种方法可以在不破坏游戏性能的情况下写入主机?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-04 17:37:07

您可以写入日志文件而不是控制台吗?这可能会更快,因为缓冲和缺乏滚动,显示等。

当这个程序运行时,你真的有一个控制台在运行吗?如果是这样的话,当你不感兴趣的时候,试着最小化它。我猜是滚动导致了问题。

编辑:好的,看起来有些证据是正确的。

一些测试..。我没有安装XNA,但是不同的写控制台的方式仍然很有趣。我把数字0-99999写到不同的控制台上:

  • 作为WinForms应用程序,在调试器下,到Visual Studio控制台: 135000ms,无论控制台是否可见或被覆盖。
  • 作为WinForms应用程序,在调试器下,写入文件:160ms
  • 作为控制台应用程序,不在调试器下,控制台最小化:4149ms
  • 作为控制台应用程序,不在调试器下,控制台不最小化:14514ms

<代码>F29

如你所见,Visual Studio控制台慢得令人痛苦,非最小化的“普通”控制台是下一个最慢的,最小化的控制台是相当快的,并且写入文件非常快。

我坚持我的建议,试着写一个文件,而不是控制台,否则,如果它是一个独立的控制台,在大多数时间里尽量减少它。

票数 8
EN

Stack Overflow用户

发布于 2009-02-04 17:35:26

“有没有一种方法可以在不破坏游戏性能的情况下写入主机?”

嗯,你可以像大多数游戏引擎一样创建自己的游戏控制台(最著名的是Quake),并在按下一个键时显示控制台。

编辑:

如果您不想实现自己的控制台,有一个项目可以做到这一点:

http://www.codeplex.com/XnaConsole

这比Win32游戏机更有优势,因为它在游戏中运行,在游戏帧速率下运行,而且在游戏机和xna应用程序之间切换时不会让你的设备松动。(虽然设备恢复在XNA中是自动的,但丢失设备仍然会在幕后发生)

票数 4
EN

Stack Overflow用户

发布于 2009-02-04 20:56:30

很可能是您向控制台写入了过多的数据。使用计数器或计时器降低控制台写入的频率。每秒更新一次通常就足以看到您需要的内容。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/512401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档