我使用console.out.writeline()来打印属于XNA游戏中不同精灵的坐标。但几秒钟后,游戏开始变得非常慢,几乎停止。
(不写入控制台时,性能没有问题)。(精灵的位置在每个更新方法中都会写入)
有没有一种方法可以在不破坏游戏性能的情况下写入主机?
发布于 2009-02-04 17:37:07
您可以写入日志文件而不是控制台吗?这可能会更快,因为缓冲和缺乏滚动,显示等。
当这个程序运行时,你真的有一个控制台在运行吗?如果是这样的话,当你不感兴趣的时候,试着最小化它。我猜是滚动导致了问题。
编辑:好的,看起来有些证据是正确的。
一些测试..。我没有安装XNA,但是不同的写控制台的方式仍然很有趣。我把数字0-99999写到不同的控制台上:
<代码>F29
如你所见,Visual Studio控制台慢得令人痛苦,非最小化的“普通”控制台是下一个最慢的,最小化的控制台是相当快的,并且写入文件非常快。
我坚持我的建议,试着写一个文件,而不是控制台,否则,如果它是一个独立的控制台,在大多数时间里尽量减少它。
发布于 2009-02-04 17:35:26
“有没有一种方法可以在不破坏游戏性能的情况下写入主机?”
嗯,你可以像大多数游戏引擎一样创建自己的游戏控制台(最著名的是Quake),并在按下一个键时显示控制台。
编辑:
如果您不想实现自己的控制台,有一个项目可以做到这一点:
http://www.codeplex.com/XnaConsole
这比Win32游戏机更有优势,因为它在游戏中运行,在游戏帧速率下运行,而且在游戏机和xna应用程序之间切换时不会让你的设备松动。(虽然设备恢复在XNA中是自动的,但丢失设备仍然会在幕后发生)
发布于 2009-02-04 20:56:30
很可能是您向控制台写入了过多的数据。使用计数器或计时器降低控制台写入的频率。每秒更新一次通常就足以看到您需要的内容。
https://stackoverflow.com/questions/512401
复制相似问题