Egg Catcher Game
Listing Program
unit game;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
ExtCtrls, StdCtrls, jpeg;
type
TForm1 =
class(TForm)
btnMain:
TButton;
Panel1: TPanel;
Telur: TImage;
Kotak: TImage;
lblWaktu:
TLabel;
lblSkor:
TLabel;
Lbl60: TLabel;
lblDetik:
TLabel;
Lbl0: TLabel;
TelurTime:
TTimer;
waktuTime:
TTimer;
procedure
btnMainClick(Sender: TObject);
procedure
TelurTimeTimer(Sender: TObject);
procedure
waktuTimeTimer(Sender: TObject);
procedure
useMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
private
{ Private
declarations }
public
{ Public
declarations }
end;
var
Form1: TForm1;
Overlay: TRect;
implementation
{$R *.dfm}
procedure TForm1.btnMainClick(Sender: TObject);
begin
btnMain.Font.Size
:= 12;
btnMain.Caption
:= 'MAIN LAGI?';
btnMain.Enabled
:= false;
panel1.Enabled :=
true;
telurTime.Enabled
:= true;
waktuTime.Enabled
:= true;
kotak.Visible :=
true;
telur.Visible :=
true;
panel1.Caption :=
'';
telur.Top := 0;
lbl60.Caption :=
'60';
lbl60.Tag := 60;
lbl0.Caption :=
'0';
lbl0.Tag := 0;
end;
procedure TForm1.TelurTimeTimer(Sender: TObject);
begin
telur.Visible :=
true;
telur.Top :=
telur.Top + 15;
if telur.Top >
panel1.Height then
begin
telur.Top := 0;
telur.Left :=
random(panel1.Width);
end;
if
intersectRect(Overlay, telur.BoundsRect, kotak.BoundsRect) then
begin
telur.Visible
:= false;
telur.Top :=
0;
telur.Left :=
random(panel1.Width);
lbl0.Tag :=
lbl0.Tag + 1;
lbl0.Caption
:= inttostr(lbl0.Tag);
end; end;
procedure TForm1.waktuTimeTimer(Sender: TObject);
begin
lbl60.Tag:=
lbl60.Tag - 1;
lbl60.Caption :=
inttostr(lbl60.Tag);
if lbl60.Tag = 0
then
begin
btnMain.Enabled
:= true;
waktuTime.Enabled := false;
panel1.Enabled
:= false;
telurTime.Enabled := false;
kotak.Visible
:= false;
telur.Visible
:= false;
panel1.Caption
:= 'Click the Play Again Button to Play Again the Game';
end;
end;
procedure TForm1.useMove(Sender: TObject; Shift:
TShiftState; X,
Y: Integer);
begin
kotak.Left := X -
kotak.Width div 5;
panel1.Cursor :=
crHelp;
end;
end.
Logika Program
1.
Membuka Aplikasi Borland Delphi

2.
Setelah jendela Borland Delphi terbuka, klik File lalu klik save all dan
mengisi nama project yang akan dibuat

3.
Membuat Form1 dengan berisikan:
·
1 Button
·
1 Panel
·
2 Image
·
5 Label
·
2 Timer
Menyusun seperti gambar
dibawah:

Untuk menyisipkan gambar, klik Additional lalu klik
image, setelah itu masukkan image ke panel, pada image properties dibagian
picture klik “...” lalu klik load dan pilih gambar yang akan dimasukkan.

Klik OK.
|
Control
|
Properties
|
Setting
|
|
Form1
|
BorderStyle
|
BsSingle
|
|
|
Caption
|
Tangkap Telur
|
|
|
Position
|
poDekstopCenter
|
|
Button1
|
Caption
|
PLAY
|
|
|
Name
|
btnMain
|
|
Panel1
|
bevelInner
|
byLowered
|
|
|
bevelOuter
|
byLowered
|
|
|
Caption
|
Click the Play Button
to Start the Game
|
|
|
Enabled
|
False
|
|
Image1
|
Name
|
Telur
|
|
|
Strecth
|
True
|
|
|
Transparent
|
True
|
|
|
Visible
|
False
|
|
Image2
|
Enabled
|
False
|
|
|
Name
|
Kotak
|
|
|
Strecth
|
True
|
|
|
Transparent
|
True
|
|
|
Visible
|
False
|
|
Label1
|
Name
|
lblWaktu
|
|
|
Transparent
|
True
|
|
Label2
|
Name
|
lblSkor
|
|
|
Transparent
|
True
|
|
Label3
|
Name
|
Lbl60
|
|
|
Transparent
|
True
|
|
Label4
|
Name
|
LblDetik
|
|
|
Transparent
|
True
|
|
Label5
|
Name
|
Lbl0
|
|
|
Transparent
|
True
|
|
Timer1
|
Name
|
telurTime
|
|
|
Enabled
|
False
|
|
|
Interval
|
50
|
|
Timer2
|
Name
|
waktuTime
|
|
|
Enabled
|
False
|
4.
Pada bagian var isikan kode program dibawah:

·
Pejelasan kode program:
Var
Form1: TForm1;
Overlay: TRect;
Kode program diatas merupakan pendeklarasian variable Overlay
5.
Klik 2 kali pada button1 – btnMain, lalu memasukkan kode program dibawah:

·
Penjelasan kode Program:
procedure TForm1.btnMainClick(Sender: TObject);
Kode program diatas menunjukkan bila btnMain dengan caption “PLAY” di klik
maka program akan berjalan
begin
begin, menunjukkan untuk memulai kode program
btnMain.Font.Size := 12;
Kode program diatas menunjukkan agar ukuran huruf pada button1 atau btnMain
sebesar 12
btnMain.Caption := 'PLAY AGAIN?';
Kode program diatas menunjukkan untuk merubah caption pada btnMain yang
sebelumnya adalah “PLAY” menjadi “PLAY AGAIN?”
btnMain.Enabled := false;
Kode program diatas menunjukkan pada button btnMain dengan caption “PLAY
AGAIN?” tidak bisa diklik atau tidak aktif
panel1.Enabled := true;
Kode program diatas menunjukkan untuk mengaktifkan panel1
telurTime.Enabled := true;
Kode program diatas menunjukkan mengaktifkan timer1 atau telurTime agar
dapat berjalan
waktuTime.Enabled := true;
Kode program diatas menunjukkan mengaktifkan timer2 atau waktuTime agar
dapat berjalan
kotak.Visible := true;
Kode program diatas menunjukkan untuk menampilkan gambar image2/kotak
telur.Visible := true;
Kode program diatas menunjukkan untuk menampilkan gambar image1/telur
panel1.Caption := '';
Kode program diatas menunjukkan untuk menghilangkan caption pada panel1
lbl60.Caption := '60';
Kode program diatas menunjukkan agar caption lbl60 adalah 60
lbl60.Tag := 60;
Kode program diatas menunjukan lbl60 dimulai dari 60
lbl0.Caption := '0';
Kode program diatas menunjukkan agar caption lbl0 adalah 0
lbl0.Tag := 0;
Kode program diatas menunjukan lbl0 dimulai dari 0
end;
Menunjukkan akhir dari kode program di button1
6.
Klik pada 2 kali pada Timer1 – telurTime, dan memasukkan kode program
dibawah:

·
Penjelasan kode program
procedure
TForm1.TelurTimeTimer(Sender: TObject);
Kode program diatas menunjukkan untuk memulai timer1 atau TelurTime
begin
begin, menunjukkan untuk memulai kode program
telur.Visible := true;
Kode program diatas menunjukkan untuk menampilkan gambar image1/telur
telur.Top := telur.Top + 15;
Kode program diatas menunjukkan telur.Top yang menjadikan telur bergerak
mulai dari posisi atas
if telur.Top > panel1.Height then
begin
Kode program diatas merupakan struktur percabangan if
telur.Top := 0;
telur.Left := random(panel1.Width);
Kode program diatas menunjukkan telur akan bergerak secara acak dari posisi
atas didaerah panel1
end;
mengakhiri percabangan if
if intersectRect(Overlay,
telur.BoundsRect, kotak.BoundsRect) then
begin
Kode program diatas merupakan struktur percabangan if
telur.Visible := false;
Kode program diatas menunjukkan untuk tidak menampilkan gambar image1/telur
telur.Top := 0;
telur.Left := random(panel1.Width);
Kode program diatas menunjukkan telur akan bergerak secara acak dari posisi
atas didaerah panel1
lbl0.Tag := lbl0.Tag + 1;
Kode program diatas menunjukkan pada lbl0 agar ditambah satu untuk setiap
telur yang masuk kedalam kotak
lbl0.Caption := inttostr(lbl0.Tag);
Kode program diatas menunjukkan lbl0 yang dirubah dari integer menjadi
string
end; end;
Mengakhiri kode program pada telurTime
7.
Klik pada 2 kali pada Timer2 – waktuTime, dan memasukkan kode program
dibawah:

·
Penjelasan kode program:
procedure TForm1.waktuTimeTimer(Sender: TObject);
Kode program diatas menunjukkan memulai timer2 atau waktuTime
begin
Menunjukkan untuk memulai kode program
lbl60.Tag:= lbl60.Tag - 1;
Kode program diatas menunjukkan
agar lbl60 dikurang 1, sehingga waktu pada game akan dikurang 1 lbl60 sama
dengan 0.
lbl60.Caption := inttostr(lbl60.Tag);
Kode program
diatas menunjukkan lbl60 dirubah dari integer ke string
if lbl60.Tag = 0 then
Kode program diatas merupakan percabangan untuk lbl60 sama dengan 0
begin
Memulai
percabangan
btnMain.Enabled := true;
Kode program diatas menunjukkan pada button btnMain bisa diklik atau aktif
waktuTime.Enabled := false;
Kode program diatas menunjukkan untuk tidak mengaktifkan timer2 atau
waktuTime
panel1.Enabled := false;
Kode program diatas menunjukkan agar panel1 tidak aktif
telurTime.Enabled := false;
Kode program diatas menunjukkan untuk tidak mengaktifkan timer1 atau
telurTime
kotak.Visible := false;
Kode program diatas menunjukkan agar tidak menampilkan gambar image2/kotak
telur.Visible := false;
Kode program diatas menunjukkan agar tidak menampilkan gambar image1/telur
panel1.Caption := 'Click the Play
Again Button to Play Again the Game';
Kode program diatas menunjukkan untuk menampilkan caption ‘Click the Play
Again Button to Play Again the Game’
end;
Untuk mengakhiri kode
program
8.
Lalu, klik Panel1 dan klik Events, mengetikkan useMove pada OnMouseMove,
dan memasukkan kode program dibawah:


·
Penjelasan kode program:
procedure TForm1.useMove(Sender: TObject; Shift:
TShiftState; X,
Y: Integer);
begin
memulai program
kotak.Left := X - kotak.Width div 5;
panel1.Cursor := crHelp;
Kode program diatas menunjukkan agar kotak bisa digerakan searah vertikal
untuk menangkap telur yang jatuh, serta bentuk kursor pada saat game dimainkan
menjadi bentuk cursor help dengan ada simbol tanda tanya di kursornya
end;
Mengakhiri kode
program
end.
Mengakhiri
program secara keseluruhan
9.
Menyimpan program kembali, dan menjalankan program
Output
1. Tampilan awal program saat
dijalankan

2. Saat klik button Main maka game akan
mulai


3. Tampilan saat game berakhir
