Программируем на Monogame без XNA. Часть 3. Проект под Android

В этот раз мы попробуем запустить просто приложение на MonoGame на Android устройстве (а точнее на эмуляторе Android устройства).

Создадим новый проект типа MonoGame Android Project.

Можно сразу заметить, что структура проекта несколько изменилась. А именно: добавились папки Assets и Resources, файл Activity1.cs

В папку Assets можно помещать любые файлы, которые необходимо добавить в приложение в неизмененном виде (например, какие-нибудь txt файлы с настройками). Для этого нужно добавить файлы в папку Assets и установить BuildAction в AndroidAsset, а загрузить при помощи следующего кода:

public class ReadAsset : Activity
{
	protected override void OnCreate (Bundle bundle)
	{
		base.OnCreate (bundle);

		InputStream input = Assets.Open ("my_asset.txt");
	}
} 

Более подробно эта операция описана в AboutAssets.txt.

Папка Resources предназначена для хранения различных ресурсов приложения: иконок для начального экрана, картинки сплешскрина. В Layouts можно поместить файлы с описанием разметки страницы приложения, а в Values словари с локализованными строками и стилями. Более подробное описание в AboutResources.txt.

Game1.cs практически не отличается от аналогичного файла из прошлого проекта для Windows.

А вот Activity1.cs это файл специфичный для Android, посмотрим на него чуть внимательнее.

using Android.App;
using Android.Content.PM;
using Android.OS;
using Android.Views;

namespace AndroidGame
{
    [Activity(Label = "AndroidGame"
        , MainLauncher = true
        , Icon = "@drawable/icon"
        , Theme = "@style/Theme.Splash"
        , AlwaysRetainTaskState = true
        , LaunchMode = Android.Content.PM.LaunchMode.SingleInstance
        , ScreenOrientation = ScreenOrientation.SensorLandscape
        , ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.ScreenSize)]
    public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            var g = new Game1();
            SetContentView((View)g.Services.GetService(typeof(View)));
            g.Run();
        }
    }
}

Из интересного, пожалуй, тут есть только настройка основных параметров приложения через атрибут Activity.

Для запуска приложения нам понадобится правильно настроенные Java SDK, Android SDK и включенный Hyper-V.

Вот и наше приложение на экране Android эмулятора

Запись опубликована в рубрике Компьютерная графика, MonoGame с метками , , , , , . Добавьте в закладки постоянную ссылку.

Оставьте комментарий