個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

Xamarin + Cocos Sharp で iOS, Android 対応のゲームを開発する手順 (4) Android でタイトル画面を出す。

ご注意

こちらは、Cocos Sharp 1.6.2 までの場合の方法です。
Cocos Sharp 1.7.1 以上をお使いの場合、以下をご覧下さい。

hiro128.hatenablog.jp



今回は Android でタイトル画面を出します。

まずは、AndroidのプロジェクトにPCLプロジェクトの参照を追加します。

CocosSharpGameSample.Android プロジェクトの参照設定を右クリックし、参照の追加をクリックします。

f:id:hiro128:20160307104528p:plain

CocosSharpGameSample.Core にチェックを入れ、OKをクリックします。

f:id:hiro128:20160307104210p:plain

次に CocosSharpGameSample.Android プロジェクトの Assets/Images/Background にタイトル画面の画像を配置します。
画像ファイルのビルドアクションは「AndroidAsset」にします。

f:id:hiro128:20160307104212p:plain

TitleLayer.cs は CocosSharpGameSample.Core プロジェクトにすでに作成済みのものを共用しますので作成不要です。

f:id:hiro128:20160307104213p:plain

SampleGameApplicationDelegate.cs も CocosSharpGameSample.Core プロジェクトにすでに作成済みのものを共用しますので作成不要です。

f:id:hiro128:20160307104214p:plain

最後に CocosSharpGameSample.Android プロジェクトの MainActivity.cs を変更し
ゲームの起動を行い、画面の向きを Landscape に固定します。

using Android.App;
using Android.Content.PM;
using Android.OS;
using CocosSharp;
using CocosSharpGameSample.Core;
using Microsoft.Xna.Framework;

namespace CocosSharpGameSample.Android
{
	[Activity(Label = "CocosSharpGameSample.Android"
		, MainLauncher = true
		, Icon = "@drawable/icon"
		, AlwaysRetainTaskState = true
		, LaunchMode = LaunchMode.SingleInstance
		, ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden
	)]
	public class MainActivity : AndroidGameActivity // 継承元を AndroidGameActivity にするのを忘れずに。
	{

		protected override void OnCreate(Bundle bundle)
		{

			base.OnCreate(bundle);
			// ゲームをを起動する。
			var application = new CCApplication();
			application.ApplicationDelegate = new SampleGameApplicationDelegate();
			SetContentView(application.AndroidContentView);
			application.StartGame();
		}

		// 画面の向きを Landscape に固定
		public override ScreenOrientation RequestedOrientation
		{
			get
			{
				return ScreenOrientation.Landscape;
			}
			set
			{
				base.RequestedOrientation = ScreenOrientation.Landscape;
			}
		}

	}
}

以上でプログラムが完成しましたので、Debug - Any Cpuで起動するとタイトル画面が表示されます。

f:id:hiro128:20160304162654p:plain

アプリケーションの起動部分以外は共用できますので iOS 版が作成済みの場合、非常に簡単に Android 版が作成できます。

今回はここまでです。