講義メモ:ゲーム開発演習

ゲーム開発演習:フォームの表示と設定

解説:フォームプログラミング

・グラフィックス、サウンドと、マウスなどのポインティングディバイスを用いるプログラムをC#で開発するには、
 フォームアプリケーションのプロジェクトを用いると良い
・Unityなどの専用ツールを用いる場合に比べて自由度が高くなる(ただし記述量や求められる知識は増える)
・よって、将来いろいろな開発ツールを利用できるようになるための、基礎力をつけることに向いている
・プロジェクトの作成方法
①「新しいプロジェクトの作成」
②「C#」「Windowsフォームアプリケーション(.NET Framework)」「次へ」
③ 適当なプロジェクト名、場所(USBメモリ推奨)などを指定して「作成」
④ フォームデザインが表示されるが、プログラム側で設定・制御するので、閉じてOK
⑤ 代わりに「Program.cs」を開くと、フォームアプリケーションのスケルトンが表示され、利用可能になる
⑥ このソースは冗長なので、下記のようにシンプルにできる

using System;
using System.Windows.Forms;
class Program {
    static void Main() {
        Application.Run(new Form());
    }
}

⑦「デバッグなしで開始」で実行でき、コンソールではなくフォームが表示される
⑧ 確認したらフォームの右上の「×」で必ず閉じる(開けたまま再実行するとエラーになる)

演習0 フォームアプリケーションの実行確認:作成例

//演習0 フォームアプリケーションの実行確認
using System; //C#標準クラス用
using System.Windows.Forms; //C#が提供するApplication、Formクラス用
class Program {
    static void Main() { //実行用メソッド(publicはなくてOK)
        Application.Run(new Form()); //C#が提供するFormクラスのインスタンスを生成し実行
    }
}

テーマ1 フォームサイズの指定

・フォームの大きさは、FormクラスのインスタンスプロパティWidthに幅のドット数、Heightに高さのドット数を与えることで設定できる
・インスタンスプロパティを用いるには、あらかじめ、Formクラスのインスタンスを生成しておくと良い
・この時、指定したインスタンス名(参照変数)を用いて、インスタンスプロパティを利用できる
・そして、指定したインスタンス名をApplication.Runに渡すようにしよう
例:
 Form インスタンス名 = new Form();
 インスタンス名.Width = 幅のドット数
 インスタンス名.Height = 高さのドット数
 Application.Run(インスタンス名); 

演習1 フォームサイズの指定

・フォームの幅を640、高さを480にしよう

作成例

//演習1 フォームサイズの指定
using System; //C#標準クラス用
using System.Windows.Forms; //C#が提供するApplication、Formクラス用
class Program {
    static void Main() { //実行用メソッド(publicはなくてOK)
        Form f = new Form(); //Formクラスのインスタンスを生成
        f.Width = 640; //インスタンスプロパティで幅を設定
        f.Height = 480; //インスタンスプロパティで高さを設定
        Application.Run(f); //生成済のインスタンスを実行
    }
}

テーマ2 フォームサイズの一括指定

・フォームの幅(Width)と高さ(Height)は、まとめて大きさ(Size)として扱うことができる
・FormクラスのインスタンスプロパティSizeに、System.Drawing.Sizeクラスのオブジェクトを与えることで一括指定が可能
・Sizeクラスの利用には「using System.Drawing;」を指定すると良い
・Sizeクラスのオブジェクトに幅と高さを与えるには、Sizeクラスのコストラクタ(int 幅, int 高さ)を用いると良い
例:
 Form インスタンス名① = new Form();
 Size インスタンス名② = new Size(幅のドット数, 高さのドット数);
 インスタンス名①.Size = インスタンス名②;
 Application.Run(インスタンス名①); 

演習2 フォームサイズの一括指定

・Sizeクラスのオブジェクトを用いて、フォームの幅を640、高さを480にしよう

作成例

//演習2 フォームサイズの一括指定
using System; //C#標準クラス用
using System.Windows.Forms; //C#が提供するApplication、Formクラス用
using System.Drawing; //Sizeクラス用
class Program {
    static void Main() { //実行用メソッド(publicはなくてOK)
        Form f = new Form(); //Formクラスのインスタンスを生成
        Size s = new Size(640, 480); //幅と高さの大きさのSizeインスタンスを生成
        f.Size = s; //インスタンスプロパティで大きさを設定
        Application.Run(f); //生成済のインスタンスを実行
    }
}

テーマ3 フォーム名の指定

・フォーム名はFormクラスのインスタンスプロパティTextに文字列を代入することで設定できる
・フォーム名はWindowsからみたアプリケーション名になるので、予め設定しておくと良い

演習3 フォーム名の指定

・フォーム名を「Game」にしよう

作成例

//演習3 フォーム名の指定
using System; //C#標準クラス用
using System.Windows.Forms; //C#が提供するApplication、Formクラス用
using System.Drawing; //Sizeクラス用
class Program {
    static void Main() { //実行用メソッド(publicはなくてOK)
        Form f = new Form(); //Formクラスのインスタンスを生成
        f.Text = "Game"; //Form名を設定
        Size s = new Size(640, 480); //幅と高さの大きさのSizeインスタンスを生成
        f.Size = s; //インスタンスプロパティで大きさを設定
        Application.Run(f); //生成済のインスタンスを実行
    }
}

補足:Formクラスについて

・APIリファレンスで仕様を確認しよう
 https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.form
・Formクラスのコンストラクタはデフォルトしかなく、引数を指定できるコンストラクタはない
・プロパティが大量にあり、Height、Size、Text、Widthが含まれている

テーマ4 フォームの初期位置の指定

・FormクラスのインスタンスプロパティStartPositionに「手動設定」を設定すると、初期位置を指定できる
・手動設定には、System.Windows.Forms.FormStartPosition列挙体のManual列挙子を用いると良い
・すると、FormクラスのインスタンスプロパティLocationに、初期位置の座標を指定できる
・座標指定には、System.Drawing.Pointクラスのコストラクタ(int X座標 int Y座標)を用いると良い
例:
 Form インスタンス名① = new Form();
 インスタンス名①.StartPosition = FormStartPosition.Manual;
 Pointインスタンス名② = new Point(X座標, Y座標);
 インスタンス名①.Location = ②;

演習4 フォームの初期位置の指定

・フォームの初期位置を(300, 0)にしよう

提出:演習4 フォームの初期位置の指定

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です