1

我很难在 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();
       }
4

2 回答 2

0

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

于 2012-12-01T03:44:59.877 回答
0

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

于 2013-01-24T14:58:31.607 回答