gpt4 book ai didi

c# - 在 XNA 中截屏

转载 作者:太空狗 更新时间:2023-10-30 01:27:58 25 4
gpt4 key购买 nike

如何在 XNA 中截取屏幕截图?没有 System.Drawing.Graphics.CopyFromScreen 或 Win32API 是否可行?如果不可能,有什么方法可以在游戏中绘制 System.Drawing.Bitmap 吗?

我希望它截取屏幕截图,然后以全屏模式加载游戏,然后打印屏幕截图。

谢谢。

最佳答案

http://www.gamedev.net/community/forums/topic.asp?topic_id=537265&whichpage=1&#3469331

首先在游戏的 LoadContent 方法中创建一个 ResolveTexture2D:

renderTargetTexture = new ResolveTexture2D(
graphics.GraphicsDevice,
graphics.GraphicsDevice.PresentationParameters.BackBufferWidth,
graphics.GraphicsDevice.PresentationParameters.BackBufferHeight, 1,
graphics.GraphicsDevice.PresentationParameters.BackBufferFormat);

然后在绘制场景后解析 Draw 方法中的后台缓冲区:

graphics.GraphicsDevice.ResolveBackBuffer(renderTargetTexture);

最后,当您的游戏在 Draw 方法中暂停时,使用 spritebatch 绘制捕获的后台缓冲区:

spriteBatch.Draw(renderTargetTexture, Vector2.Zero, Color.White);

如果你想要图像是灰度的,你需要编写一个像素着色器并在你的 LoadContent 中加载它和一个效果文件,然后在使用 spritebatch 绘制纹理之前设置效果。

关于c# - 在 XNA 中截屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1775196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com