截图iOS,MonoGame

时间:2013-03-27 16:14:14

标签: ios xamarin.ios monogame

我正在使用MonoGame为iOS开发游戏。该游戏已经使用MonoGame发布用于Windows 8(metro)。我们有MonoTouch,我有几个问题,但只有一个主要问题。我无法截取屏幕截图。能够截取屏幕截图是游戏中必不可少的组成部分,因为我们有游戏区域共享,因此其他用户将能够看到保存的游戏的外观。据我了解,这在develop3d分支中没有实现,但我从某人那里听说它是在较早版本的develop分支中实现的。有没有人知道解决这个问题的方法?这似乎是一件相当普遍的事情。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

对于UIKit屏幕,您可以使用:

UIScreen.Capture()

对于OpenGL屏幕,您可以使用:

iPhoneOSGameView.Capture()

答案 1 :(得分:0)

您可以使用原生iOS API执行此操作:

UIViewController controller = game.Services.GetService(typeof(UIViewController)) as UIViewController;

UIGraphics.BeginImageContext(controller.View.Frame.Size);
using (var context = UIGraphics.GetCurrentContext())
{
    controller.View.Layer.RenderInContext(context);
    using (var image = UIGraphics.GetImageFromCurrentImageContext())
    {
        //Save the image to file here   
    }
}
UIGraphics.EndImageContext();

检查错误,这是我的头脑。

我猜测XNA apis还没有实现。

答案 2 :(得分:0)

我实现了这个我自己,我打算创建公关但没有时间。我可以在这里找到用于创建屏幕截图的代码:Texture2D.cs我有一段时间没有与远程合并,所以不确定这将插入当前源的程度。请注意,您要查看的方法是SaveAsJpeg和SaveAsPng,但棘手的部分是GetTextureData()正确。完全有可能这个问题已经被其他人解决了。但这对我有用。