個人的なメモ

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

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

はじめに

こんにちは、@hiro128_777です。
今回は、Cocos Sharp 1.7 以降に対応した Android でタイトル画面を表示する方法についてご説明します。

※これから Cocos Sharp をはじめる方は 1.7 以降をご利用ください。

既に、Cocos Sharp 1.6.2 をご利用の場合以下をご覧下さい。
hiro128.hatenablog.jp

Android でタイトル画面を表示する方法

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

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

f:id:hiro128:20170207202423p:plain

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

f:id:hiro128:20170207202430p:plain

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

f:id:hiro128:20170207202627p:plain

f:id:hiro128:20170131204338p:plain
↑この画像を使っています。

ゲームロジックは共用なので作成不要!

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

※Cocos Sharp では起動部分以外は共用できます!便利ですね!

Android のプロジェクトにゲーム起動のコードを記述

最後に CocosSharpGameSample.Android プロジェクトの MainActivity.cs を変更し
アプリの起動時に、ゲーム画面を含むUIが表示されるようにします。

f:id:hiro128:20170207202654p:plain

using Android.App;
using Android.Content.PM;
using Android.OS;
using Android.Views;
using Android.Widget;
using CocosSharp;
using CocosSharpGameSample.Core;

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 : Activity
	{

		protected override void OnCreate(Bundle bundle)
		{
			base.OnCreate(bundle);

			// タイトルを非表示にする
			RequestWindowFeature(WindowFeatures.NoTitle);

			var linearLayout = new LinearLayout(this)
			{
				Orientation = Orientation.Vertical
			};

			// ゲーム表示用コントロール作成
			var gameView = new CCGameView(this);

			// ゲーム起動
			if (gameView != null)
				gameView.ViewCreated += GameDelegate.LoadGame;

			linearLayout.AddView(gameView);
			SetContentView(linearLayout);
		}

	}
}

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

f:id:hiro128:20170207202710p:plain

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

今回はここまでです。