講義メモ ゲーム開発演習

フォームサイズの固定化、背景画像の描画など

テーマ2 フォーム名の指定【再掲載】

・System.Windows.Forms.Formクラスには、フォーム名を持つTextプロパティがある
・これを設定すると、見かけ上のアプリ名になる

提出フォロー:演習2 フォーム名の指定

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

作成例

//演習2 フォーム名の指定
using System; //フォームアプリケーションに必須
using System.Windows.Forms; //フォームアプリケーションに必須
class Program : Form { //Formクラスを継承
    static void Main() { //publicの指定は任意
        Program p = new Program(); //継承したフォームのインスタンスを生成
        p.Width = 660; //インスタンスのWidthプロパティに幅を代入
        p.Height = 520; //インスタンスのHeightプロパティに高さを代入
        p.Text = "Game"; //インスタンスのTextプロパティにフォーム名を代入
        Application.Run(p); //インスタンスを画面に出す
    }
}

テーマ3 フォームサイズの固定化

・フォームの右上には3つのボタンがあり、ControlBoxという。
・ここで、最大化を可能にしておくと、アプリケーション側で対処が必要
・よって、ControlBoxを非表示にすることで、最大化を抑止できる
・System.Windows.Forms.Formクラスには、ControlBoxプロパティがあり、これをfalseにすると良い
・しかし、最小化やクローズも出来なくなるので、プログラム側で終了処理を記述する必要がある
・なお、タスクバーでアイコンを右クリックして「ウィンドウを閉じる」でも終了できる
・ControlBoxを非表示にした時、Textプロパティにフォーム名を代入いていないと、ウィンドウバーも消えるので注意(ウィンドウの移動ができなくなる)

演習3 フォームサイズの固定化

・ControlBoxを非表示にして最大化・最小化・クローズを出来なくしよう

作成例

//演習3 フォームサイズの固定化
using System; //フォームアプリケーションに必須
using System.Windows.Forms; //フォームアプリケーションに必須
class Program : Form { //Formクラスを継承
    static void Main() { //publicの指定は任意
        Program p = new Program(); //継承したフォームのインスタンスを生成
        p.Width = 660; //インスタンスのWidthプロパティに幅を代入
        p.Height = 520; //インスタンスのHeightプロパティに高さを代入
        p.Text = "Game"; //インスタンスのTextプロパティにフォーム名を代入
        p.ControlBox = false; //ControlBoxを非表示にする
        Application.Run(p); //インスタンスを画面に出す
    }
}

テーマ4 メッセージボックス

・フォームアプリケーションにおいて画面上に小さなダイヤログであるメッセージボックスを表示できる
・確認メッセージの表示に用いることが多いが、テスト時の確認用にも便利
・System.Windows.Forms.MessageBoxクラスの、静的メソッドShow(string)で可能で、引数として表示したい文字列を与える

演習4 メッセージボックス

・起動したら「Hello」と表示するメッセージボックスを表そう
・フォームアプリケーションのMainメソッドで実行する場合は、Application.Run(…)の前に行うこと
・メッセージボックスの表示中はプログラムは待ち状態になる(モーダル)

作成例

//演習4 メッセージボックス
using System; //フォームアプリケーションに必須
using System.Windows.Forms; //フォームアプリケーションに必須
class Program : Form { //Formクラスを継承
    static void Main() { //publicの指定は任意
        Program p = new Program(); //継承したフォームのインスタンスを生成
        p.Width = 660; //インスタンスのWidthプロパティに幅を代入
        p.Height = 520; //インスタンスのHeightプロパティに高さを代入
        p.Text = "Game"; //インスタンスのTextプロパティにフォーム名を代入
        p.ControlBox = false; //ControlBoxを非表示にする
        MessageBox.Show("Hello!"); //【追加】メッセージボックスを表示
        Application.Run(p); //インスタンスを画面に出す
    }
}

テーマ5 描画処理の基礎

・ウィンドウを持つアプリケーションでは、プログラム側からの描画と、システム側からの必要に応じた描画がある
・この両方に対応するために、C#のフォームアプリケーションでは、Formクラスでvoid OnPaint(PaintEventArgs)メソッドを提供している
・この引数のPaintEventArgsはシステム側が提供する「画面を描くための情報」
・フォームアプリケーションではこのメソッドをオーバーライドして、描画処理を記述する(アクセス修飾子はprotecedにすること)
・この時、フォームの基本再描画処理がFormクラスで与えられるので、オーバーライドの冒頭において、FormクラスのOnPaintメソッドの内容を実行すること
・この実行には、PaintEventArgsを引数として渡す
・書式例:
 protected override void OnPaint(PaintEventArgs e) { //Formのメソッドをオーバーライド
  base.OnPaint(e); //まず、Formクラスにおけるメソッドの内容(基本再描画処理)を実行
  :自前の描画処理を書くところ
 }

提出:「演習4 メッセージボックス」

コメントを残す

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