2

MonoGame を使用して iOS 用のゲームを開発しています。このゲームは、MonoGame を使用した Windows 8 (metro) 用に既にリリースされています。MonoTouch を入手しましたが、いくつかの問題がありましたが、大きな問題が 1 つだけ残っています。スクリーンショットを撮ることができません。プレイエリアを共有しているため、スクリーンショットを撮ることができることはゲームの重要な要素です。これにより、他のユーザーは保存されたゲームがどのように見えるかを見ることができます。私が理解しているように、これはdevelop3dブランチでは実装されていませんが、開発ブランチの古いバージョンで実装されていたと誰かから聞きました。これを回避する方法を知っている人はいますか?やらなければならないことはかなり一般的なことのようです。

どんな助けでも大歓迎です。

4

3 に答える 3

2

UIKit 画面の場合、以下を使用できます。

UIScreen.Capture()

OpenGL 画面の場合、以下を使用できます。

iPhoneOSGameView.Capture()
于 2013-03-29T14:38:06.580 に答える
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 API は実装されていないと思います。

于 2013-03-27T17:29:46.137 に答える
0

私はこれを自分で実装しました。PRを作成するつもりでしたが、時間がありませんでした。スクリーン ショットを作成するために使用したコードは、次の場所 にあります。見たいメソッドは SaveAsJpeg と SaveAsPng であることに注意してください。難しいのは GetTextureData() を正しく取得することでした。この問題がすでに他の誰かによって解決されている可能性は十分にあります。しかし、これは私にとってはうまくいきました。

于 2014-04-14T12:20:49.603 に答える