読者です 読者をやめる 読者になる 読者になる

がりらぼ

WindowsRuntimeの応援ブログ

MonoGameWindowsRuntimeゲームプログラミング入門vol3:2D画像を描画する

C# MonoGame

Gameクラス

作成したMonoGameのプロジェクトの要素をソリューションエクスプローラで見てみましょう。

51

 

Program.csを見てみましょう。

 public static class Program
 {
     /// <summary>
     /// The main entry point for the application.
     /// </summary>
     static void Main()
     {
         var factory = new MonoGame.Framework.GameFrameworkViewSource<Game1>();
         Windows.ApplicationModel.Core.CoreApplication.Run(factory);
     }
 }

ここにMainメソッドがあります。これがプログラムのエントリポイントとなります。

Mainメソッド内を見てみると、GameFrameworkViewSourceクラスをGame1クラスをジェネリックの要素としてnewしています。

 

ではGame1.csを見てみましょう。

public class Game1 : Game
{
    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;

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

    //初期化
    protected override void Initialize()
    {
        // TODO: Add your initialization logic here

        base.Initialize();
    }

  //リソースの確保
    protected override void LoadContent()
    {
        // Create a new SpriteBatch, which can be used to draw textures.
        spriteBatch = new SpriteBatch(GraphicsDevice);

        // TODO: use this.Content to load your game content here
    }

    //リソースの解放
    protected override void UnloadContent()
    {
        // TODO: Unload any non ContentManager content here
    }

    //更新
    protected override void Update(GameTime gameTime)
    {
        // TODO: Add your update logic here

        base.Update(gameTime);
    }

    //描画
    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);

        // TODO: Add your drawing code here

        base.Draw(gameTime);
    }
}

Game1クラスはGameクラスを継承しています。

Gameクラスを継承するクラスは「ゲームそのもの」を表します。

なのでGame1クラスが実質的にゲームそのものを記述する対象となります。

 

では各メソッドを見てみましょう。

Initializeメソッドは初期化メソッドです。ゲーム内で最初に一度だけ実行したい処理を書き込みます。

LoadContentメソッドはリソースの確保メソッドです。ゲームないで必要なリソース。たとえばpng画像などをここで読み込みます。

UnloadContentメソッドはリソースを破棄するメソッドです。LoadContentメソッドで確保したリソースを解放します。

Updateメソッドはゲームの状態を更新するメソッドです。1秒間に60回呼ばれます。

Drawメソッドはゲームの描画をするメソッドです。1秒間に60回よばれます。

 

メソッドは一定の規則で呼ばれます。

Initialize→最初に一度だけ

LoadContent→Initializeの次に最初に一度だけ

UnLoadContent→最後に一度だけ

Update→1秒間に60回(60fpsの場合)

Draw→Updateの後に1秒間に60回(60fpsの場合)

 

UpdateメソッドとDrawメソッドは繰り返し何度も呼ばれることでリアルタイムで滑らかなゲームを実現します。

これをゲームループと呼びます。

52

 

 

MonoGameにおけるゲームを記述する部分はGameクラスを継承したクラスであり、

上記の呼び出し規則で呼ばれるのでそれに応じて処理を記述していきます。

 

2D画像を描画する | garicchi.com

MonoGameWindowsRuntimeゲームプログラミング入門 | garicchi.com