【问题标题】:Screenshot problems with MonoGame Windows 8MonoGame Windows 8 的屏幕截图问题
【发布时间】:2012-12-01 03:10:54
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-24
        • 1970-01-01
        • 2021-03-20
        • 1970-01-01
        • 2017-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多