LAPORAN AKHIR PRAKTIKUM
|
Mata Praktikum
|
: Algoritma dan Pemograman 2A
|
|
Kelas
|
: 1IA12
|
|
Praktikum ke-
|
: 4
|
|
Tanggal
|
: 04 April 2016
|
|
Materi
|
: Animasi Pada Delphi
|
|
NPM
|
: 52415535
|
|
Nama
|
: Farrasta Khoirunnas Saum
|
|
Ketua Asisten
|
:
|
|
Paraf Asisten
|
:
|
|
Nama Asisten
|
:
|
|
Jumlah Lembar
|
: 13 Lembar
|
LISTING PROGRAM
|
|
var
Form1: TForm1;
nyawa,skor : integer;
implementation
{$R *.dfm}
|
|
procedure TForm1.FormCreate(Sender: TObject);
begin
nyawa := 3;
bintang.Top := 0;
bintang.Left := random(280);
end;
|
|
procedure TForm1.Timer1Timer(Sender: TObject);
begin
bintang.Top := bintang.Top + 5;
if bintang.top >= 500 then
begin
bintang.Top := 0;
nyawa := nyawa - 1;
if nyawa = 2 then nyawa3.Visible := false
else if nyawa = 1 then nyawa2.Visible := false
else if nyawa = 0 then nyawa1.Visible := false
|
|
begin
timer1.Interval := 0;
showmessage ('Game Over' + chr(13) + 'Skor Anda : ' +
inttostr(skor));
end
end
end;
|
|
procedure TForm1.bintangClick(Sender: TObject);
begin
skor := strtoint(label1.Caption) + 1;
label1.Caption := inttostr(skor);
bintang.Top := 0;
bintang.Left := random(280);
timer1.Interval := timer1.Interval - 10;
if timer1.Interval <= 10 then timer1.Interval := 10;
end;
end.
LOGIKA PROGRAM
Pada
pertemuan keempat saya mempelajari animasi pada delphi. Disini saya belajar
membuat permainan sederhana. Permainan tersebut yaitu bernama menembak bintang yang
membutuhkan 1 label , 1 timer , 1 shape , dan 4 image yang disusun di form 1.
Sebelum menyusun , atur terlebih dahulu Tinggi dan lebar form 1 dengan Height =
500 dan Width = 350. Lalu ubah borderstyle menjadi bssingle agar form 1 tidak
dapat berubah tinggi dan lebarnya.
Setelah selesai
mengatur Tinggi dan Lebar form1 , maka masukkan komponenya.
Setelah selesai
menempatkan semua elemen , maka langkah selanjutnya yaitu mengisi 3 image yang
berada pada shape dengan mengisi gambar hati sebagai nyawa dan 1 image pada
form1 sebagai bintang atau objek yang akan ditembak. Dan tak lupa mengganti
caption label1 menjadi 0 sebagai perhitungan skor pada game. Tampilan sebagai
berikut :
Untuk memperindah
tampilan , saya akan mengganti warna shape menjadi warna biru dengan cara :
·
Klik pada sahpe
·
Lihat pada object inspector , pilih
“Brush” dan klik pada tanda “+”
·
Ubah warna “clwhite” menjadi “clblue”
Selanjutnya saya
mengubah label1 dengan memperbesar ukuran font dan mengganti warna background
pada label 1 , dengan cara :
·
Klik pada label 1 dan lihat pada
object inspector
·
Pilih color , setelah itu ganti warna
clwhite menjadi clblue
·
Selanjutnya pilih font , dan lihat
pada font proprties
·
Ubah size font menjadi 30 dan warna
menjadi white
Maka tampilan akan
menjadi seperti yang dibawah ini :
Setelah mengubah
tampilan , lalu kita masukkan kodingan pada Form1. Klik 2x pada tampilan Form1
, lalu masukkan kodingan seperti berikut :
|
|
Form1: TForm1;
nyawa,skor : integer;
implementation
{$R *.dfm}
|
|
begin
nyawa := 3;
bintang.Top := 0;
bintang.Left := random(280);
end;
·
nyawa,skor
: integer;// mendeklarasikan nyawa dan skor dalam tipe integer atau bilangan
bulat
·
nyawa
:= 3;//yaitu nyawa dari permainan tersebut berjumlah 3 nyawa
·
bintang.Top
:= 0;//Munculnya bintang saat mulainya permainan pada posisi 0 atau dimulai
dari atas
·
bintang.Left
:= random(280);//pergerakan bintang memlikibatas hanya 280 atau selebar form 1
|
|
procedure TForm1.Timer1Timer(Sender: TObject);
begin
bintang.Top := bintang.Top + 5;
if bintang.top >= 500 then
begin
|
|
nyawa := nyawa - 1;
if nyawa = 2 then nyawa3.Visible := false
else if nyawa = 1 then nyawa2.Visible := false
else if nyawa = 0 then nyawa1.Visible := false
else
begin
timer1.Interval := 0;
showmessage ('Game Over' + chr(13) + 'Skor Anda : ' +
inttostr(skor));
end
end
end;
bintang.Top := bintang.Top + 5;// Kodingan ini berfungsi
untuk mengatur kecepatan pada bintang. Semakin besar angka maka semakin cepat
pergerakan bintang. Jika pergerakan bintang melebihi panjang form1 yang
sepanjang 500 (if bintang.top >= 500) maka posisi bintang akan kembali ke
posisi 0/atas (bintang.Top := 0;) lalu nyawa dari permainan tersebut berkurang
1 (nyawa := nyawa - 1;). Dilanjutkan :
·
if
nyawa = 2 then nyawa3.Visible := false//jika bintang melebihi batas pertama
kali , maka nyawa ketiga akan hilang.
·
if
nyawa = 1 then nyawa2.Visible := false//lalu jika bintang melebihi batas kedua
kalinya maka nyawa kedua akan hilang.
·
if
nyawa = 0 then nyawa1.Visible := false//selanjutnya jika bintang melebihi batas
ketiga kalinya maka nyawa pertama akan hilang.
·
timer1.Interval
:= 0;//setelah bintang melewati batas untuk keempat kalinya , maka timer akan
dimulai kembali dari 0 , atau permainan kembali dari awal.
·
showmessage ('Game Over' + chr(13) + 'Skor Anda : ' + inttostr(skor));//
Kodingan tersebut berfungsi untuk menampilkan messagebox bahwa permainan telah
selesai atau gameover dan menampilkan skor permainan. Adapaun (chr(13))
merupakan kode ASCII(American Standard Code for Information
Interchange) untuk memberikan spasi antar kalimat.
|
|
procedure TForm1.bintangClick(Sender: TObject);
begin
skor := strtoint(label1.Caption) + 1;
label1.Caption := inttostr(skor);
bintang.Top := 0;
bintang.Left := random(280);
timer1.Interval := timer1.Interval - 10;
if timer1.Interval <= 10 then timer1.Interval := 10;
end;
skor := strtoint(label1.Caption) + 1;//kodingan tersebut
berfungsi untuk menambah skor yang ada pada label 1. Skor akan bertambah 1
setiap kita klik bintang. Adapun strtoint yaitu mendeklarasikan dari string
atau kata ke dalam integer atau bilangan bulat.
label1.Caption := inttostr(skor);//kodingan tersebut
mendeklarasikan label1 ke bentuk bilangan bulat atau integer menjadi huruf atau
string.
timer1.Interval := timer1.Interval - 10;//waktu interval
berkurang 10.
if timer1.Interval <= 10 then timer1.Interval := 10//jika
waktu interval kurang dari 10 maka waktu interval sama dengan 10.
OUTPUT PROGRAM
1. Program
ketika pertama kali dijalankan :
2. Program
ketika objeck bintang di klik , maka skor pada label 1 bertambah 1
3. Program
ketika objek bintang melewati batas panjang form 1 , maka nyawa akan berkurang
1 :
4. Program
ketika objek bintang ketika melewati batas untuk kedua kalinya , maka nyawa
akan berkurang 1 lagi :
5. Program ketika objek bintang ketika melewati
batas untuk ketiga kalinya , maka nyawa akan berkurang 1 lagi :
6. Output
program ketika Game sudah selesai :
7. Output
program ketika kita menyelesaikan permainan sampai game over :