MonoGame Windows 8的屏幕截图问题

时间:2012-12-01 03:10:55

标签: windows-8 xna windows-runtime monogame winrt-async

我在MonoGame中保存屏幕截图非常困难。每次我保存屏幕截图时,它都会搞得一团糟,有点像优质频道如果你没有订阅它们的样子。就像搞乱VHS录像带上的跟踪一样。我现在知道发生了什么。我创建了一个全新的项目,只是为了看它是我的项目还是MonoGame。它与新项目完美配合。我知道没有人能够知道我到底做错了什么,但有人甚至可以向我建议为什么这样的事情会发生吗?我应该看看我的相机课吗?或者也许有关保存文件的事情搞砸了?我不知所措,今天微软有一场比赛,我显然已经错过了截止日期。以下是我的保存截图方法:

       async void ScreenShot()
       {
           RenderTarget2D renderTarget = new RenderTarget2D(
              _graphics.GraphicsDevice,
              _graphics.GraphicsDevice.PresentationParameters.BackBufferWidth,
              _graphics.GraphicsDevice.PresentationParameters.BackBufferHeight);

           _graphics.GraphicsDevice.SetRenderTarget(renderTarget);

           Draw(new GameTime());

           _graphics.GraphicsDevice.SetRenderTarget(null);

           StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
           Stream stream = null;
           if (storageFolder != null) stream = await storageFolder.OpenStreamForWriteAsync("testing.jpg", CreationCollisionOption.ReplaceExisting);
           if (stream != null)
           {
              renderTarget.SaveAsJpeg(stream, renderTarget.Width, renderTarget.Height);
           }
           stream.Dispose();
       }

2 个答案:

答案 0 :(得分:0)

好吧,好吧,我把它缩小了一点。我刚刚取出函数的一部分,将它写入文件,然后将renderTarget转换为Texture2D然后渲染它,它看起来很完美。很明显,问题在于保存文件。这并没有完全解决我的问题,但它至少给了我一些可以使用的东西。

答案 1 :(得分:0)

我想出来了,这是模拟器的一个问题。出于某种原因,当通过模拟器写入文件时,它会出现乱码,但是当在实际设备上运行游戏时,它可以完美地运行。