Artikel Lanjutan dari: link
Source code:
Karena
listing kode pada laporan kali ini di ambil dari project (Game Matches) yang
telah dikembangkan karena banyak sekali, maka saya hanya akan menjelaskan
logika program pada bagian-bagian source kode tertentu.
Logika Program:
?-
G_Comp_First=0,
G_Take_Last=0,
beep("sound\\programcomplate.wav"),
pen(0,0),
set(pos([1,2,3,4,5,6])),
Penjelasan:
Pada engine strawberry prolog yang mana dalam
pembuatan/ pengembangan game menggunakan aplikasi tersebut., sebelum memulai
sintax per-tama harus di tandai dengan “?-”
tanpa tanda kutip dua. Selanjutnya
memberikan/ mendeskripsikan G_Comp_First,
dan G_Take_Last, dengan
masing-masing nilai awal sama dengan 0. Kemudian memberikan fungsi sound beep
(sound awal program berjalan) dan dilanjutkan memberi nilai pen x = 0 & y =
0. Untuk:
set(pos([1,2,3,4,5,6])),
Ø menjelaskan bagian set default dari susunan game
matches itu sendiri, seperti
* Untuk akhir dari isi/
kondisi diakhiri dengan “titik” (.)
* Dan untuk pemisah isi1/
kodisi1 dengan isi2/ kondisi2 menggunakan “koma” (,)
%-----------------------memasukkan
alamat gambar----------------
G_SplashLoading is bitmap_image("image\\background.bmp",_),
G_background is bitmap_image("image\\background2.bmp",_),
G_Digimon is bitmap_image("image\\icon.bmp",_),
G_opening is bitmap_image("image\\background1.bmp",_),
Penjelasan:
Untuk memasukkan alamat gambar, dibutuhkan G_deklarasi-nama is bitmap_image(“folder lokasi\\file.bmp”,
Untuk memasukkan alamat gambar, dibutuhkan G_deklarasi-nama is bitmap_image(“folder lokasi\\file.bmp”,
Pengaturan Window Timer
window(G_pertama,_,window_pertama(_),"Window
Timer",(190,40,980,660)).
window_pertama(init):-
G_batas := 0,
G_pertama is
set_timer(_,0.01,fungsi_timer).
fungsi_timer(end):-
draw_bitmap(0,0,G_SplashLoading,_,_),
font(11,25,"Lucida Console"),
text_out(0,0,print("Loading:
" + G_batas +"%")),
G_batas := G_batas +1,
(G_batas = 101 ->
close_window(G_pertama),
Penjelasan:
Langkah awal yang dilakukan
adalah mesetting window dengan perintah window(G_deklarasi-nama-window,
_, window_nama(_), “Judul_window”,(x1,y1,x2,y2)).
Dimana pada keterangan:
x1 = koordinasi horizontal pada layar monitor
y1 = koordinasi vertical pada layar monitor
x2 = size panjang window (horizontal)
y2 = size lebar window (vertical)
x1 = koordinasi horizontal pada layar monitor
y1 = koordinasi vertical pada layar monitor
x2 = size panjang window (horizontal)
y2 = size lebar window (vertical)
Dalam
listing Window Timer menjelaskan
koordinasi horizontal pada layar monitor terletak di 190, koordinasi vertical
pada layar monitor terletak di 40, size panjang window (horizontal) adalah 980,
dan yang terakhir size lebar window (vertical) adalah 660.
Kemudian
pada fungsi window_pertama(init):- mendeklarasikan G_batas dengan nilai tetap adalah 0,
dan G_pertama didefinisikan sebagai set_timer dengan satuan 0.01 detik.
Selanjutnya untuk memberhentikan timer
tsb, menggunakan fungsi_timer
(end) :- .
Pada fungsi ini layar Window Timer
akan memanggil drow_bitmap yang ada pada G_SplashScreen dan nantinya digunakan
untuk sebuah background pada Window Timer.
Kemudian terlampirkan sebuah teks dengan koordinasi X=0 dan Y=0, dimana teks
tersebut akan di cetak pada bagian sebelah kiri atas Window Timer. Selanjutnya mendefinisikan G_batas := G_batas + 1, artinya waktu terus bertambah dan waktu akan berhenti pada
kondisi pendefinisian G_batas = 101
yang dilanjutkan setelah timer berhenti adalah close_window(G_pertama) atau pada layar Window Timer.
%----------------------Pengaturan Window Utama------------------ window(G_screen,_,win_kedua(_),"Digimon Matches",350,60,870,680)).
Penjelasan:
Source
code tersebut untuk men-setting “window utama” Kemudian langkah awal pada
setiap pengaturan window adalah dengan mengetikkan window(G_deklarasi-nama-window,_,window_nama(_),“Judul_window”,(x1,y1,x2,y2)).
Dimana pada keterangan:
x1 = koordinasi horizontal pada layar monitor
y1 = koordinasi vertical pada layar monitor
x2 = size panjang window (horizontal)
y2 = size lebar window (vertical)
x1 = koordinasi horizontal pada layar monitor
y1 = koordinasi vertical pada layar monitor
x2 = size panjang window (horizontal)
y2 = size lebar window (vertical)
Dan
apabila pada setiap window ingin menambahkan image (background), bisa
ditambahkan:
win_window-nama(paint)
:-
draw_bitmat(0,0,G_window-deklarasi-nama,_,_).
draw_bitmat(0,0,G_window-deklarasi-nama,_,_).
Untuk nilai x dan y harus sama dengan 0.
%---------------pembuatan
button pada window utama--------------
win_kedua(init):-
button(_,_,start(_),"Start",250,500,100,50),
button(_,_,how(_),"How
To Play",480,500,100,50),
button(_,_,about(_),"About",250,580,100,50),
button(_,_,exit(_),"Exit",480,580,100,50).
Penjelasan:
Untuk
membuat button, yang dibutuhkan adalah fungsi baru. Yaitu win_kedua(init)
:-
Dengan bentuk umum pada button:
button(_,_,deklarasi-nama(_),“nama-button”,(x1,y1,x2,y2))
Dimana pada keterangan:
x1 = koordinasi horizontal pada layar window
y1 = koordinasi vertical pada layar window
x2 = size panjang window (horizontal)
y2 = size lebar window (vertical)
x1 = koordinasi horizontal pada layar window
y1 = koordinasi vertical pada layar window
x2 = size panjang window (horizontal)
y2 = size lebar window (vertical)
Perintah pada masing-masing button:
1.
tampilan jika mengklik button start:
start(press):-
beep("sound\\sound jalan.wav"),
beep("sound\\GameStart_Mulai.wav"),
execute("sound\\vb.exe"),
close_window(G_screen),
window_n(G_Main, _,win_func,
"Take The Digimon (Don't take the last)", 80,80,620,400,_,_,rgb(255,255,255)).
Penjelasan:
Fungsi
ini menggunakan (press) yang
berfungsi untuk bisa mengklik button tsb. Dengan perintah awal adalah perintah
beep, yaitu menjalankan sound jalan.wav yang
dilanjutkan dengan perintah beep lagi untuk menjalankan GameStart_Mulai.wav kemudian dilanjutkan memanggil vb.exe yang berada di folder sound.
File tersebu berisi backsound dan
dipanggil menggunakan perintah execute.
Selanjutnya window dengan nama G_Screen akan di tutup menggunakan perintah close_window dan yang nantinya akan
muncul nama window G_main. Window tersebut adalah window utama yang digunakan
untuk bermain game ini.
2.
Tampilan jika mengklik button help:
how(press):-
beep("sound\\sound jalan.wav"),
shell_execute("How_to_play.html").
Penjelasan:
Fungsi
ini menggunakan (press) yang
berfungsi untuk bisa mengklik button tsb. Awal dari fungsi ini memberi perintah
beep yang digunakan untuk memanggil sound jalan.wav dan dilanjutkan
menjalankan perintah shell_execute,
perintah ini berfungsi untuk memanggil file .html yang nantinya akan membuka
sebuah tab browser untuk keterangan isi dari How_to_play.html
3.
Tampilan jika mengklik button about:
about(press) :-
beep("sound\\sound
jalan.wav"),
message("Tentang
Saya","
Game Prolog : Take The Digimon
Kelas : 3IA12
NPM : 55412727
Modifier By : Puji Satri Widodo
\nUNIVERSITAS GUNADARMA",
i).
Penjelasan:
Fungsi
ini menggunakan (press) yang
berfungsi untuk bisa mengklik button tsb. Awal dari fungsi ini memberikan
perintah beep yang digunakan untuk
memanggil sound jalan.wav dan yang
selanjutkan memberi perintah message.
Perintah ini digunakan untuk menginformasikan isi dari perintah message tsb.
4.
Tampilan jika mengklik button exit:
exit(press):-
beep("sound\\goodbye.wav"),
close_window(G_screen).
Penjelasan:
Fungsi
ini menggunakan (press) yang
berfungsi untuk bisa mengklik button tsb. Awal dari fungsi ini memberikan
perintah beep yang digunakan untuk
memanggil sound goodbye.wav dan
selanjutnya window dengan nama G_Screen akan di tutup menggunakan perintah close_window.
Menu utama pada Window Main:
win_func(init) :-
menu( pop_up, _, _,
menu_level(_), "&New Game"),
menu( normal, _, _,
menu_back(_), "&Main Menu"),
menu( normal, _, _,
menu_options(_), "&Options"),
menu( normal, _, _,
menu_help(_), "&Help"),
menu( normal, _, _,
menu_exit(_), "&Exit").
Penjelasan:
Fungsi
ini menggunakan (init). Terlihat ada perbedaan yang terdapat pada setiap bagian
menu, yaitu pop_up dan normal. Untuk pop_up digunakan untuk membuat menu yang bercabang. Sedangkan normal untuk membuat menu standart
tanpa cabang.
Notifikasi pemberitahuan menang atau kalah dalam game ini
end(Flag):-
Flag=G_Take_Last->
beep("sound\\lose.wav"),
message("Maaf","Kamu Kalah kali ini!",i)
else
beep("sound\\win.wav"),
message("Selamat","Kamu
Menang ^_^",i).
Penjelasan:
Menandai
fungsi dengan perintah end(Flag) yang selanjutnya memberikan
mendeklarasikan nilai kepada Flag=G_Take_Last. Dimana Nilai awal G_Take_Last sudah di definisikan yaitu
adalah 0 yang terletak pada awal program. Di fungsi ini menggunakan
percabangan, dimana statement awal menginformasikan pesan kalah, dan sebaliknya
jika nilai Flag tidak sama dengan G_Take_Last
“Flag != 0” maka akan keluar sebuah pesan dan beep sound win.
Deklarasi Area Mouse Klik:
win_func(mouse_click(X,Y)):-
beep("sound\\sound
jalan.wav"),
X1 is (X- 40)//100,
Y1 is (320-Y)//45,
X1=<5,X>=40,
pos(Pos),
el(Pos,El,X1),
El>Y1,
replace(Pos2, Pos, Y1, X1),
(Pos2=[0,0,0,0,0,0]->
set(pos(Pos2)),
end(0)
else
wait(0.5),
play(Pos3, Pos2),
(Pos3=[0,0,0,0,0,0]->
end(1)),
set(pos(Pos3))),
update_window(_).
Penjelasan:
Fungsi ini
memanfaatkan koordinasi X dan Y, dimana terdapat pula X1 yang sudah
didefinisikan dengan (X
– 40)//100, serta Y1
adalah (320 –
Y)//45,
Fungsi tersebut
mengidentifikasikan icon.bmp yang sudah di setting lokasi antara jarak pada
setiap item di window:
X is 50+ 100*N,
Y is 330- 45*I,
draw_bitmap(X,Y,G_Digimon,_,_), fail.
*NB:
Pada saat mengklik button start sebuah lagu pada
program ini akan berjalan. Ketika saat ingin memberhentikan lagu tsb, maka
digunakanlah sebuah file .bat yang
berisi Taskkill /F /IM vb.exe dan dapat meletakkannya pada bagian
fungsi menu_back(press) :- dan menu_exit(press) :- dengan
menggunakan perintah execute.
OUTPUT:
Tampilan pada Window Timer.
Tampilan pada
Main Menu.
Tampilan Main menu pada saat
mengklik button About.
Tampilan G_main
pada saat mengklik button Start
Tampilan pesan
(message) pada saat menang melawan AI.
Tampilan pesan
(message) pada saat kalah melawan AI.
Tidak ada komentar:
Posting Komentar