早速、プログラミングに入ります。まずは、表示するもぐらとマウスカーソル(ハンマー)の絵を用意してください。作成の仕方は、「 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;