「Xamarin.Androidで画面の向きを固定する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
36行目: 36行目:
 
==関連項目==
 
==関連項目==
 
* [[MonoGame]]
 
* [[MonoGame]]
* [[MonoGame/BGMを再生する]]
+
* [[MonoGameでBGMを再生する]]
 
* [[Xamarin.Androidでディスプレイをスリープさせない]]
 
* [[Xamarin.Androidでディスプレイをスリープさせない]]
  

2021年3月5日 (金) 02:25時点における版

一般的なアプリでは画面は可変の方がいいのだろうが、MonoGameなどで作るゲームでは画面の向きを固定したいことが多い。

実装:ActivityのRequestedOrientationプロパティをoverrideする

縦方向に固定する場合。

    public class Activity1 : AndroidGameActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // 以下のRequestedOrientationプロパティに設定する方法だとダメ。
            // 起動時に一瞬だけ横になりMonoGameの初期化ルーチンで画面サイズの情報がバグる。
            this.RequestedOrientation = ScreenOrientation.Portrait;

            var g = new GameMain();
            SetContentView(g.Services.GetService<View>());
            g.Run();
        }
		
        // RequestedOrientationプロパティをoverrideする方法だと完璧に動くようだ。
        public override ScreenOrientation RequestedOrientation
        {
            get
            {
                return ScreenOrientation.Portrait;
            }
            set
            {
                base.RequestedOrientation = ScreenOrientation.Portrait;
            }
        }
    }

関連項目

参考文献