早速、プログラミングに入ります。まずは、表示するもぐらとマウスカーソル(ハンマー)の絵を用意してください。作成の仕方は、「 3 分で作ろうアプリケーション」の「もぐら叩きをつくってみよう」で作成しましたリソースファイル(Mogura.res)を、ここでも使用します。もちろん自作されても構いません。自作する場合には、上記の「もぐら叩きを作ってみよう」で作成しました内容と同じ(つまり、作成するビットマップやカーソルの名前を同じ)にして下さい。
まずは、Delphi を起動します。そして最初にプロジェクトの保存をします(プロジェクトを保存したディレクトリに上記の Mogura.res リソースファイル、又は自作されたリソースファイルを置いてください)。保存する際のプロジェクト名なのですが、上記の Mogura.res リソースファイルを使用する場合には、プロジェクト名に Mogura という名前を付ける事は出来ません(つまり、Mogura.dpr というプロジェクト名が使用できません)。これは、デフォルトで生成されるリソースファイルと名前が衝突するのを避ける為です。上記の Mogura.res ファイルを使用しない場合には、作成されたリソースファイルと名前が異なるプロジェクト名を付けてください。
プロジェクトを保存しましたら、今度は自作したリソースファイルをそのプロジェクトで使用できるようにします。自作したリソースファイルが Mogura.res であるなら、以下のようにソースファイルにプログラムします。
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} {$R Mogura.res} // 追加 end.
これで自作しましたリソースファイルが使用できるようになります。まず最初に、カーソルを変更しておきます。
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; const crUp : Integer = 1; // 追加 crDown: Integer = 2; // 追加 type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private 宣言 } public { Public 宣言 } end; ................................................................. procedure TForm1.FormCreate(Sender: TObject); begin // カーソルの設定 Screen.Cursors[crUp] := LoadCursor(hInstance, 'UP'); Screen.Cursors[crDown] := LoadCursor(hInstance, 'DOWN'); Screen.Cursor := TCursor(crUp); end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Screen.Cursor := TCursor(crDown); // ハンマーを下ろす end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Screen.Cursor := TCursor(crUp); // ハンマーを上げる end;
次に、フォームの大きさや、得点などを表示する際に使用するフォントの色、大きさもここで指定しておきたいと思います。これらは、「オブジェクトインスペクタ」で変更できますが、文章で表現しますと長くなりますので、ここではコードで示したいと思います。
また、この時点で System ページにあります Timer コンポーネントを貼り付けておいて下さい。この Timer コンポーネントは、ゲームの制限時間やもぐらを表示する時間を計る為に使用します。
procedure TForm1.FormCreate(Sender: TObject); begin // カーソルの設定 Screen.Cursors[crUp] := LoadCursor(hInstance, 'UP'); Screen.Cursors[crDown] := LoadCursor(hInstance, 'DOWN'); Screen.Cursor := TCursor(crUp); // 各種設定 ClientWidth := 489; // フォームの幅 ClientHeight := 324; // フォームの高さ Timer1.Enabled := false; Timer1.Interval := 100; end; procedure TForm1.FormShow(Sender: TObject); begin // 各種設定 Color := clGreen; Canvas.Brush.Color := clGreen; Canvas.Font.Color := clWhite; Canvas.Font.Size := 20; end;