PSMメモ – MonoGamesの導入方法

Posted: 2013年10月15日 カテゴリー: プログラミングメモ, MonoGames, PsmStudio メモ, XNA
タグ:, , ,

今回はPSM用のMonoGamesの導入方法を紹介します。

PSM用のMonoGamesにはVisual Studioと違いインストーラーやプロジェクトテンプレートが無い為、自分でソースコードを落とした後にdllをビルドし、プロジェクトを作る必要があります。ですので今回はその導入方法を紹介します(主に布教の為)。

 

まずソースコードの落とし方です。ソースコードは下記のGitHubのページから落とせます:

https://github.com/mono/MonoGame

 

ダウンロード方法は2つあり、zip形式でダウンロードするのとgitかsvnでリポジトリを落とす方法です。

zipファイルを落とす場所はGitHubのページの”Download Zip”と書かれているボタンを押すと出来ます

 

github

 

もう一つのsvnで落とす方法を紹介します。

個人的には更新しやすいのでこちらの方がオススメです。

svnに付いての詳しい説明は省きますが、便利なので知っておいた方がお得だと思います。

 

今回はTortoise svn を使用して解説します。

先ほどのページで「Https」と書かれているテキストボックス内にあるアドレスをコピーしてください。

 

github2

 

アドレスをコピーしたら、そのアドレスからリポジトリをチェックアウトすればダウンロード出来ます。チェックアウトするには右クリックで”svn Checkout…”を選択すればアドレス指定ウィンドウが出るのでそこで保存先を選択してください。

 

checkout

後は完了するのを待つだけで終わりです。

 

次は実際にMonoGamesのdllを作成します。

え、Git?スミマセンナニカトラウマガガガ・・・

 

PSM用のMonoGamesのdllを作成するには、落としてたファイルの中から、”MonoGame.Framework.PSMobile.sln”をPsmStudioで開いてください。

 

プロジェクトの中にはMonoGamesとLidgrenのプロジェクトが入っています。Lidgrenはネットワーク用のライブラリなので、使用したくなったら使用出来ます。

dllのプロジェクトはそのままビルド出来るので、debug版とrelease版をビルドするだけです。

 

ide

 

製作されたdllは通常通りbinフォルダに入っているのでそこから自分のプロジェクトに追加すれば使用できます。自分場合は[D:\MonoGames\trunk\MonoGame.Framework\bin\PSMobile]に入ってます

 

それでは実際にMonoGamesを使用したプロジェクトを作成します。

まず、新しいプロジェクトを作成し、そこに先ほど作成したdllを追加します。

プロジェクトにソリューションツリー内の「参照」を右クリックし、「参照アセンブリの編集」を選択してください。ダイアログが出てきたら「.Net Assembly」タブを選択しMonoGamesのdllを選択してください。

選択後下の方にある「Add」ボタンを押し、そこでMonoGamesが右にある一覧に加えられているのを確認してください。

 

dialog

 

これでOKを選択したらdllが追加されます。

 

次にxnaを使うとき同様、エントリーポイントにGameを継承したクラスを生成します。

AppMain.cs内にまずxnaの名前空間を追加します。

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.GamerServices;

後はエントリーポイントのMainメソッドに初期化と開始処理を加えます。

namespace MonoGameTemplate
{
public class AppMain
{
public static void Main (string[] args)
{
using (var game = new Game1())
game.Run();
}
}
}

 

Game1はGameクラスを継承したクラス名を入れてください。

次にGame1クラスを作成します。

まず、新しいC#ファイルを追加してください。その中にxnaデフォルトのGame1クラスの中身を追加すれば終わりです。

 

using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace MonoGameTemplate
{
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}

protected override void Initialize()
{
base.Initialize();
}

protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
}

protected override void UnloadContent()
{
}

protected override void Update(GameTime gameTime)
{
base.Update(gameTime);
}

protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
base.Draw(gameTime);
}
}
}

 

これを起動するとお馴染みのCornFlowerBlue画面が出ます。

 

blue

 

次に画像に関してです。

PSMでMonoGamesを使用する場合、Contentプロジェクトは作成せずそのままContentフォルダに画像等を追加します。ここで気をつけなければいけない事があります。自分がまだ見つけてないだけだとは思いますが、コンテントファイルの形式が.xnbでないと読み込まれないみたいなので、そこは注意してください。通常の.pngファイルなどの読み込みに関しては調査中です。

 

今回は以上です。

ざっくりとしか解説を載せていない上にぐだぐだな説明もあるので、何か質問があればコメントをください。

今回の骨組みのプロジェクトはそのうち何処かに上げる予定です。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中