Senin, 29 Juni 2015

Game Sederhana dengan Delphi

Diposting oleh Unknown di 09.12



Secara umum game adalah suatu program permainan berbasis komputer yang dibuat melalui suatu program bahasa pemograman. Dalam hal ini bahasa pemograman yang dipakai adalah Delphi. 



DESAIN PROGRAM
Tampilan program :


 




LISTING PROGRAM




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.useMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   kotak.Left := X- kotak.Width div 2;
  panel1.Cursor := crNone;
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 := 'Klik Main Lagi, Jika ingin main lagi';
    end;
end;

end.


LOGIKA PEMOGRAMAN

1.    MEMBUAT TAMPILAN PROGRAM


 



Dalam design tersebut, terdapat :

1.    Timer1            = Sebagai tempat pengaturan waktu turunnya bola ke bawah.
     Timer2            = Sebagai tempat pengaturan waktu bergeraknya kotak.

2.    Panel1           = Sebagai tempat menampilkan game.

3.    Image1           = Sebagai pemuncul gambar bola
     Image2           = Sebagai pemuncul gambar kotak

4.    Button1          = Sebagai pengakses program untuk mulai.
  
     Label1            = Sebagai pemberi nama inputan pada “Waktu”
     Label2            = Sebagai pemberi nama inputan pada “Skor”
     Label3            = Sebagai pemberi nama inputan pada “60”
     Label4            = Sebagai pemberi nama inputan pada “0”
     Label5            = Sebagai pemberi nama inputan pada “Detik”

1.    PENGATURAN PROPERTIES DI SETIAP KOMPONEN


 
 




Setelah itu double klik pada Buttton Main!! lalu masukkan kode program:
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;

Klik close untuk mengembalikan tampilan pada form. Setelah itu double klik lagi pada Button Timer1 lalu masukkan kode program :
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;



Klik close untuk mengembalikan tampilan pada form. Setelah itu double klik lagi pada Timer2 lalu masukkan kode program :

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 := 'Klik Main Lagi, Jika ingin main lagi';
    end;
end;

Klik close untuk mengembalikan tampilan pada form. Scroll kodingan ke atas sampa menemukan deklarasi var, lalu masukkan kode program :

var
  Form1: TForm1;
  Overlay : TRect;

Klik close untuk mengembalikan tampilan pada form. Klik Panel1 masuk ke Object Inspector bagian Event, pada OnMouseMove ketik useMove

Lalu masukkan kode program :
procedure TForm1.useMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   kotak.Left := X- kotak.Width div 2;
  panel1.Cursor := crNone;
end;

PENJELASAN KODE PROGRAM :

1.     btnMain.Font.Size := 12;
Kode program tersebut mengubah ukuran huruf btnMain( button Main!!) menjadi 12.

2.     btnMain.Caption := 'MAIN LAGI?';
Kode program tersebut mengubah caption(keterangan button)  btnMain( button Main!!) menjadi MAIN LAGI?

3.     btnMain.Enabled := false;
Kode program tersebut menonaktifkan fungsi btnMain.

4.    panel1.Enabled := true;
 Kode program tersebut mengaktifkan fungsi panel1.

5.    telurTime.Enabled := true;
 Kode program tersebut mengaktifkan fungsi telurTime.

6.    waktuTime.Enabled := true;
 Kode program tersebut mengaktifkan fungsi waktuTime.

7.    kotak.Visible := true;
Kode program tersebut menampilkan gambar kotak agar tampak atau    jelas.

8.    telur.Visible := true;
Kode program tersebut menampilkan gambar telur agar tampak atau    jelas.

9.    panel1.Caption := '';
Kode program tersebut mengubah caption(keterangan panel) pada panel1 menjadi ‘’ atau kosong.



10.  telur.Top := 0;
Kode program tersebut mengatur posisi gambar  telur pada batas atas 0px.

11.  lbl60.Caption := '60';
Kode program tersebut mengubah caption(keterangan label)  pada  lbl60 menjadi 60.

12.  lbl60.Tag := 60;
Kode program tersebut mengatur jumlah angka yang akan dipakai sebagai lama wkatu permainan.

13.  lbl0.Caption := '0';
Kode program tersebut mengubah caption(keterangan label)  pada  lbl0 menjadi 0.

14.   lbl0.Tag := 0;
Kode program tersebut mengatur lama waktu permainan selesai pada nilai 0.

15.  telur.Visible := true;
Kode program tersebut mengaktifkan fungsi telur.

16.   telur.Top := telur.Top+15;
Kode program tersebut mengatur kecepatan gambar telur yang jatuh.

17.   if telur.Top > panel1.Height then
  begin
    telur.Top := 0;
    telur.Left := random(panel1.Width);
    end;
Kode program memberikan eksekusi saat posisi ketinggian gambar telur lebih besar dari panjang panel1 maka posisi telur dikembalikan pada 0px lalu gambar telur bergarak acak ke kiri selebar ukuran panel1.

18. telur.Visible := true;
Kode program tersebut mengaktifkan fungsi telur.

19.     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);
Kode program tersebut memberikan eksekusi saat gambar telur dan kotak bertemu/berpotongan maka gambar telur akan tidak nampak , posisi gambar telur dikembalikan ke 0px, gambar teluar bergerak acak ke arah kiri selebar panel1,  tampilan angka pada lbl0 bertambah satu, dan caption pada lbl0 nilai variabelnya diubah menjadi string.

20. lbl60.Tag:= lbl60.Tag -1;
Kode program tersebut menampilkan angka pada lbl60 berkurang satu terus-menerus.

21. lbl60.Caption := inttostr(lbl60.Tag);
Kode program tersebut merubah nilai pada caption variabel lbl60 menjadi string.

22.   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 := 'Klik Main Lagi, Jika ingin main lagi';

Kode program tersebut memberikan eksekusi saat lbl60 bernilai nol maka fungsi btnMain diaktifkan. Sedangkan fungsi wakuTime-panel1-telurTime tidak diaktifkan, gambar kotak dan telur tidak ditampakkan, pada panel1 akan menampilan informasi  'Klik Main Lagi, Jika ingin main lagi'.

23. Overlay : TRect;
Kode program tersebut menambahkan efek TRect pada program.


Kode program tersebut mengatur gambar  kotak yang bergerak ke kiri berakhir pada lebar gambarkotak dibagi dua (saat gambar kotak terus digeser ke kiri atau kanan sampai melebihi garis panel maka kemunculan gambar kotak sampai setengahnya karena dibagi2).

25. panel1.Cursor := crNone;
Kode program tersebut menampilka saat gambar kotak digerakkan bentuk mouse tidak berubah(dalam keadaan default) kursor user.

OUTPUT

Tampilan Form saat Run.


 


Tampilan Form saat Run.



 






0 komentar:

Posting Komentar

Pink Bobblehead Bunny
 

My ( Mind + Act + Story ) Copyright © 2010 Design by Ipietoon Blogger Template Graphic from Enakei | web hosting