Jumat, 10 Mei 2013

TUGAS SOFTSKILL KEDUA SEMESTER 6

Diposting oleh AYU FITRIYANTI di 5/10/2013 03:18:00 AM
Shading

             Shading adalah Pemantulan bayangan pada permukaan yang rata dan disetiap permukaannya mempunyai tingkatan pencahayaan yang sama sehingga menghasilkan warna yang sama. Efek gradasi tersebut akan memantulan bayangan pada permukaan yang rata, ditambah dengan pengaruh sudut dan jarak antara objek terhadap cahaya sehingga di setiap permukaannya mempunyai tingkatan pencahayaan yang  tidak sama maka terbentuklah shading tersebut.

Contoh dari pemberian shading pada objek :


Ambient

        Ambient adalah efek pencahayaan yang telah membaur dengan lingkungan sehingga arah cahaya tidak dapat diketahui, seakan-akan cahaya datang dari segala arah. Efek ini akan mempengaruhi terang atau tidaknya suatu lingkungan yang terlihat oleh mata. Semakin banyak lampu maka ruangan semakin terang, sebaliknya jika lampu sedikit maka ruangan remang-remang.
Intensitas ambient pada suatu obyek dapat dicari dengan persamaan :

I = Ia * Ka

dimana,

I= Intensitas yang dihasilkan
Ia = Intensitas ambient
Ka = Koefisien ambient

Diffuse

           Jenis pencahayaan yang kedua ialah diffuse. Diffuse adalah pencahayaan yang tergantung dari besarnya sudut yang dibentuk antara sinar dari lampu ke titik tabrak pada obyek dengan normal obyek. Sehingga posisi lampu sangat mempengaruhi efek diffuse ini. Intensitas diffuse dapat dicari dengan hukum.

Lambertian sebagai berikut:

I = Ip * Kd (cosθ )

Dari persamaan intensitas diffuse tersebut cos θ dapat dihitung dengan melakukan dot product antara sinar dari lampu ke titik tabrak obyek dengan normal obyek itu, masing-masing merupakan unit vektor. Sehingga didapat persamaan baru.

I = Ip * Kd * ( L • N )

dimana,

I= Intensitas yang dihasilkan
Ip = Intensitas diffuse dari sumber cahaya ‘x’
Kd = Koofisien diffuse
N = Vektor normal dari obyek
L = Vektor dari titik tabrak ke sumber cahaya
θ = Sudut antara N dan L

Specular

            Specular adalah efek pencahayaan dimana bayangan sumber cahaya terlihat pada permukaan obyek. Efek specular terlihat pada obyek yang mengkilap. Semakin mengkilap permukaan suatu obyek maka makin jelas bayangan sumber cahaya yang terlihat pada permukaan obyek tersebut. Untuk mencari intensitas specular dapat digunakan persamaan sebagai berikut : 

I = Ip * Ks (cos θ ) n

Dari persamaan intensitas specular tersebut cos θ menggunakan dot product antara arah pantulan dengan negasi dari arah sinar.

I = Ip * Ks * ( R • V ) n
dapat dihitung dengan dimana,

I= Intensitas yang dihasilkan
Is = Intensitas specular dari sumber cahaya ‘x’
Ks = Koofisien specular
n = Variabel yang menentukan luas area yang berkilau jika terkena cahaya yang dipancarkan oleh sumber cahaya (bila n semakin besar maka cahaya semakin terfokus atau area yang berkilau menjadi lebih kecil)
R = Arah pantulan, berupa unit vektor
V = Negasi dari arah sinar

Sedangkan vektor R diperoleh dari − S + 2 * ( S • N ) * N

dimana,

S = Vektor dari titik tabrak ke sumber cahaya
N = Vektor normal dari obyek

Agar lebih mudah untuk membedakan antara Ambient, Diffuse, dan Specular lihatlah gambar berikut.



Mapping

            Mapping : suatu teknik untuk menirukan detail permukaan dengan pemetaan gambar (tekstur) menjadi polygons. 

Jenis – jenis Mapping :

1. Texture map  : suatu teknik untuk menirukan detail permukaan dengan pemetaan gambar (tekstur) menjadi polygons.

Terdiri dari :
- bitmap : memilih file gambar image
- checker : pola papan catur
- marble : tekstur berupa marmer
- gradien : tekstur dari gradasi tiga buah warna
- water : menampilkan efek air
- wood : menampilkan tekstur kayu

2. Mapping coordinate :

- offset : menggeser posisi bitmap pada material
- tilling : mengatur duplikasi bitmap pada material
- mirror : mencerminkan bitmap pada material
- tile : pengkotakkan material
- angle : perputaran material pada objek
- uv/vw/wv : orientasi mapping
- blur : memberikan efek kabur

Rancanglah Game Sederhana 

            Disini kami membuat game sederhana yang berjudul “Jakarta Keras Boss!!” menggunakan Strawberry Prolog. 

                Rancangannya yaitu, pertama-tama kami menentukan target rancangan game ini. Disini kami hanya membatasi sampai animasi sederhana saja, ada 2 orang yang sedang berkelahi, di game ini player memainkan “Internazionale” sedangkan AI nya adalah “Primavera”, kedua pemain harus menyerang sampai salah satu kehabisan darah, atau sampai waktunya habis dengan cara memukul dan menendang.

Berikut ini adalah kodingannya: 

?-
                G_title is bitmap_image("gambar\\GENKSMA.bmp",_),                                %ini gambar awal
                G_latar1 is bitmap_image("gambar\\latar1.bmp",_),    %ini gambar latar1
                G_char1 is bitmap_image("gambar\\char1.bmp",_),    %ini gambar jagoan 1 stand biasa
                G_char2 is bitmap_image("gambar\\char2.bmp",_),    %ini gambar musuh 1 stand biasa

                G_char1pukul is bitmap_image("gambar\\char1-1.bmp",_),                       %ini gambar jagoan lagi mukul
                G_char1tendang is bitmap_image("gambar\\char1-2.bmp",_),  %ini gambar jagoan lagi nendang

                G_x1:=30,             %posisi x jagoan
                G_y1:=350,           %posisi y jagoan

                G_x1lawan:=680, %posisi x lawan
                G_y1lawan:=355, %posisi y lawan

                G_waktu:=120,     %lamanya waktu dalam 1/detik

                G_darah1:=320,   %ini nyawa jagoan
                G_darah2:=280,   %ini nyawa lawan

                G_jarak:=0,                           %ini jarak kedua permain



                %----------------------------  INI WINDOW 1 ------------------------------%
                window(G_layar1,_,win_func(_),"JAKARTA KERAS BOSS",250,100,1000,830).

                win_func(paint):-                                                                 %fungsi win_func()
                                draw_bitmap(0,0,G_title,_,_),
                fail.
               

                %----------------------- INI TOMBOL WINDOW 1 -------------------------%
               
                win_func(init):-
                                button(_,_,mulai_game(_),"START",400,400,250,40),
                                button(_,_,about(_),"HELP",400,450,250,40),
                                button(_,_,keluar_game(_),"DROP OUT",400,500,250,40).

               
                                %---------------- MULAI GAME --------------------%
                                mulai_game(press):-
                                                window(G_layar2,_,win_func2(_),"JAKARTA KERAS BOSS",250,100,810,630),
                                                close_window(G_layar1),
                                                update_window(_).
                                               
                                                win_func2(init):-
                                                %lawan_berkurang(_),
                                                G_timer is set_timer(_,1,time_func).


                                %--------------- KELUAR GAME --------------------%
                                keluar_game(press):-
                                                close_window(G_layar1).
                                                fail.

                                %-------------- TENTANG GAME ------------------%
                                about(press):-
                                                shell_execute("help.html").                              
               
                               
                %------------------------ FUNGSI TIMER ---------------------------------      %
                               
                time_func(end):-
                                                               
                                G_waktu:=G_waktu-1,
                                E:= printq(G_waktu),
                                font(15,50,"Times New Roman"),
                                text_out(360,20,E),
                               

                                (G_waktu=0->
                                message("TIME","PERMAINAN BERAKHIR\nAnda dinyatakan SERI",i), close_window(_)),
                               
                                lawan_berkurang(_),
                fail.


               
                %--------------------FUNGSI HITUNG JARAK----------------------------%
                hitung_jarak(end):-
                                G_jarak:=G_x1lawan-G_x1,
                                T:= printq(G_jarak),
                                font(8,10,"Times New Roman"),
                                text_out(20, 570, T),
                fail.

                %--------------------- FUNGSI LAWAN GERAK -------------------------%
                lawan_berkurang(end):-
                                (G_jarak>200->                                                                                                   
                               
                                G_x1lawan:=G_x1lawan-50,update_window(_)           
                                ),                                                                                                                              %jika jarak lebih dari 200

                                (G_jarak<190->                                                                                                   
                               
                                G_x1lawan:=G_x1lawan+50,update_window(_)          
                                ),                                                                                                                              %jika jarak kurang dari 190

                                (G_darah2>550->
                                message("TIME","PERMAINAN BERAKHIR\nAnda dinyatakan MENANG",i), close_window(_)
                                ).
                                                               
                fail.

                win_func2(paint):-
                                draw_bitmap(0,0,G_latar1,_,_),
                                draw_bitmap(G_x1,G_y1,G_char1,_,_),                                          %ini karakter jagoan
                                draw_bitmap(G_x1lawan,G_y1lawan,G_char2,_,_),     %ini karakter musuh           

                               
                                font(10,20,"Impact"),                                          %ini font untuk 2 biji yang dibawah
                                text_out(10, 20, "Internazionale"),   %ini nama jagoan
                                text_out(580, 20, "Primavera"),                        %ini nama musuh
                               
                                               
                                pen(20,rgb(100,0,0)),                                                         %ini fungsi draw pen nya
                                line(20,50,G_darah1,50),                                                   %ini darah jagoan
                                line(G_darah2+175,50,770,50),                                       %ini darah lawan

                                hitung_jarak(_),
                               
                               
                fail.

                kiri(paint):-
                P:=G_x1+20,
                                draw_bitmap(P,G_y1,G_char1,_,_),
                                update_window(_),
                                G_x1:=P.               

                kanan(paint):-
                Q:=G_x1-20,
                                draw_bitmap(Q,G_y1,G_char1,_,_),
                                update_window(_),
                                G_x1:=Q.

                pukul(paint):-
                P1:=G_y1,
                                draw_bitmap(G_x1,P1,G_char1pukul,_,_),
                                wait(0.2),
                                G_y1:=P1,
                                (G_jarak<200->                                                                                                   
                               
                                G_darah2:=G_darah2+30,update_window(_)              
                                ).

                tendang(paint):-
                Q1:=G_y1,
                                draw_bitmap(G_x1,Q1,G_char1tendang,_,_),
                                wait(0.2),
                                update_window(_),
                                G_y1:=Q1,

(G_jarak<200->                                                                                                   
                               
                                G_darah2:=G_darah2+50,update_window(_)              
                                ).

                %----------------------------fungsi Charcode--------------------------------------

                win_func2(key_down(39,_)):-                                                                          %kiri
                                kiri(_).   

                win_func2(key_down(37,_)):-                                                                          %kanan
                                kanan(_).

                win_func2(key_down(38,_)):-                                                                          %atas
                                update_window(_).

                win_func2(key_down(90,_)):-                                          %tombol z
                                pukul(_).
               
                               
                win_func2(key_down(88,_)):-                                          %tombol x
                                tendang(_).



               

fail.

Scenario Game 

             Skenario game ini adalah dimana kedua pemain (player dan AI) bertarung sampai darahnya habis, dan juga akan ada waktu selama 120 detik. Player akan dinyatan menang  jika berhasil mengalahkan AI sampai darahnya habis dan sebaliknya, Player akan dinyatakan kalah jika darahnya habis. Jika waktu sudah habis tetapi tidak ada yang kalah, maka darahnya yang paling sedikit akan dinyatakan kalah.

Pendeklarasian Objek Game

            Objek pada game ini ada 2 yang penting. Pertama Player yang bernama”Internazionale, yang kedua adalah AI yang bernama “Primavera”, ini diatur dalam :

win_func2(paint):-
                                draw_bitmap(0,0,G_latar1,_,_),
                                draw_bitmap(G_x1,G_y1,G_char1,_,_),                                          %ini karakter jagoan
                                draw_bitmap(G_x1lawan,G_y1lawan,G_char2,_,_),     %ini karakter musuh           

                               
                                font(10,20,"Impact"),                                          %ini font untuk 2 biji yang dibawah
                                text_out(10, 20, "Internazionale"),   %ini nama jagoan
                                text_out(580, 20, "Primavera"),                        %ini nama musuh
                               
                                               
                                pen(20,rgb(100,0,0)),                                                         %ini fungsi draw pen nya
                                line(20,50,G_darah1,50),                                                   %ini darah jagoan
                                line(G_darah2+175,50,770,50),                                       %ini darah lawan

                                hitung_jarak(_),
                               
                               
                fail.

Bagian penting lainnya adalah private class KeyManager. Digunakan untuk menangkap event yang dilakukan pada keyboard.

%----------------------------fungsi Charcode---------------------------

      win_func2(key_down(39,_)):-                           %kiri
            kiri(_).   

      win_func2(key_down(37,_)):-                           %kanan
            kanan(_).

      win_func2(key_down(38,_)):-                           %atas
            update_window(_).

      win_func2(key_down(90,_)):-               %tombol z
            pukul(_).
     
           
      win_func2(key_down(88,_)):-               %tombol x
            tendang(_).

     

fail.


Screenshot Game
 


REFERENSI :

rekan kerja :


0 komentar:

Posting Komentar

Jumat, 10 Mei 2013

TUGAS SOFTSKILL KEDUA SEMESTER 6

Shading

             Shading adalah Pemantulan bayangan pada permukaan yang rata dan disetiap permukaannya mempunyai tingkatan pencahayaan yang sama sehingga menghasilkan warna yang sama. Efek gradasi tersebut akan memantulan bayangan pada permukaan yang rata, ditambah dengan pengaruh sudut dan jarak antara objek terhadap cahaya sehingga di setiap permukaannya mempunyai tingkatan pencahayaan yang  tidak sama maka terbentuklah shading tersebut.

Contoh dari pemberian shading pada objek :


Ambient

        Ambient adalah efek pencahayaan yang telah membaur dengan lingkungan sehingga arah cahaya tidak dapat diketahui, seakan-akan cahaya datang dari segala arah. Efek ini akan mempengaruhi terang atau tidaknya suatu lingkungan yang terlihat oleh mata. Semakin banyak lampu maka ruangan semakin terang, sebaliknya jika lampu sedikit maka ruangan remang-remang.
Intensitas ambient pada suatu obyek dapat dicari dengan persamaan :

I = Ia * Ka

dimana,

I= Intensitas yang dihasilkan
Ia = Intensitas ambient
Ka = Koefisien ambient

Diffuse

           Jenis pencahayaan yang kedua ialah diffuse. Diffuse adalah pencahayaan yang tergantung dari besarnya sudut yang dibentuk antara sinar dari lampu ke titik tabrak pada obyek dengan normal obyek. Sehingga posisi lampu sangat mempengaruhi efek diffuse ini. Intensitas diffuse dapat dicari dengan hukum.

Lambertian sebagai berikut:

I = Ip * Kd (cosθ )

Dari persamaan intensitas diffuse tersebut cos θ dapat dihitung dengan melakukan dot product antara sinar dari lampu ke titik tabrak obyek dengan normal obyek itu, masing-masing merupakan unit vektor. Sehingga didapat persamaan baru.

I = Ip * Kd * ( L • N )

dimana,

I= Intensitas yang dihasilkan
Ip = Intensitas diffuse dari sumber cahaya ‘x’
Kd = Koofisien diffuse
N = Vektor normal dari obyek
L = Vektor dari titik tabrak ke sumber cahaya
θ = Sudut antara N dan L

Specular

            Specular adalah efek pencahayaan dimana bayangan sumber cahaya terlihat pada permukaan obyek. Efek specular terlihat pada obyek yang mengkilap. Semakin mengkilap permukaan suatu obyek maka makin jelas bayangan sumber cahaya yang terlihat pada permukaan obyek tersebut. Untuk mencari intensitas specular dapat digunakan persamaan sebagai berikut : 

I = Ip * Ks (cos θ ) n

Dari persamaan intensitas specular tersebut cos θ menggunakan dot product antara arah pantulan dengan negasi dari arah sinar.

I = Ip * Ks * ( R • V ) n
dapat dihitung dengan dimana,

I= Intensitas yang dihasilkan
Is = Intensitas specular dari sumber cahaya ‘x’
Ks = Koofisien specular
n = Variabel yang menentukan luas area yang berkilau jika terkena cahaya yang dipancarkan oleh sumber cahaya (bila n semakin besar maka cahaya semakin terfokus atau area yang berkilau menjadi lebih kecil)
R = Arah pantulan, berupa unit vektor
V = Negasi dari arah sinar

Sedangkan vektor R diperoleh dari − S + 2 * ( S • N ) * N

dimana,

S = Vektor dari titik tabrak ke sumber cahaya
N = Vektor normal dari obyek

Agar lebih mudah untuk membedakan antara Ambient, Diffuse, dan Specular lihatlah gambar berikut.



Mapping

            Mapping : suatu teknik untuk menirukan detail permukaan dengan pemetaan gambar (tekstur) menjadi polygons. 

Jenis – jenis Mapping :

1. Texture map  : suatu teknik untuk menirukan detail permukaan dengan pemetaan gambar (tekstur) menjadi polygons.

Terdiri dari :
- bitmap : memilih file gambar image
- checker : pola papan catur
- marble : tekstur berupa marmer
- gradien : tekstur dari gradasi tiga buah warna
- water : menampilkan efek air
- wood : menampilkan tekstur kayu

2. Mapping coordinate :

- offset : menggeser posisi bitmap pada material
- tilling : mengatur duplikasi bitmap pada material
- mirror : mencerminkan bitmap pada material
- tile : pengkotakkan material
- angle : perputaran material pada objek
- uv/vw/wv : orientasi mapping
- blur : memberikan efek kabur

Rancanglah Game Sederhana 

            Disini kami membuat game sederhana yang berjudul “Jakarta Keras Boss!!” menggunakan Strawberry Prolog. 

                Rancangannya yaitu, pertama-tama kami menentukan target rancangan game ini. Disini kami hanya membatasi sampai animasi sederhana saja, ada 2 orang yang sedang berkelahi, di game ini player memainkan “Internazionale” sedangkan AI nya adalah “Primavera”, kedua pemain harus menyerang sampai salah satu kehabisan darah, atau sampai waktunya habis dengan cara memukul dan menendang.

Berikut ini adalah kodingannya: 

?-
                G_title is bitmap_image("gambar\\GENKSMA.bmp",_),                                %ini gambar awal
                G_latar1 is bitmap_image("gambar\\latar1.bmp",_),    %ini gambar latar1
                G_char1 is bitmap_image("gambar\\char1.bmp",_),    %ini gambar jagoan 1 stand biasa
                G_char2 is bitmap_image("gambar\\char2.bmp",_),    %ini gambar musuh 1 stand biasa

                G_char1pukul is bitmap_image("gambar\\char1-1.bmp",_),                       %ini gambar jagoan lagi mukul
                G_char1tendang is bitmap_image("gambar\\char1-2.bmp",_),  %ini gambar jagoan lagi nendang

                G_x1:=30,             %posisi x jagoan
                G_y1:=350,           %posisi y jagoan

                G_x1lawan:=680, %posisi x lawan
                G_y1lawan:=355, %posisi y lawan

                G_waktu:=120,     %lamanya waktu dalam 1/detik

                G_darah1:=320,   %ini nyawa jagoan
                G_darah2:=280,   %ini nyawa lawan

                G_jarak:=0,                           %ini jarak kedua permain



                %----------------------------  INI WINDOW 1 ------------------------------%
                window(G_layar1,_,win_func(_),"JAKARTA KERAS BOSS",250,100,1000,830).

                win_func(paint):-                                                                 %fungsi win_func()
                                draw_bitmap(0,0,G_title,_,_),
                fail.
               

                %----------------------- INI TOMBOL WINDOW 1 -------------------------%
               
                win_func(init):-
                                button(_,_,mulai_game(_),"START",400,400,250,40),
                                button(_,_,about(_),"HELP",400,450,250,40),
                                button(_,_,keluar_game(_),"DROP OUT",400,500,250,40).

               
                                %---------------- MULAI GAME --------------------%
                                mulai_game(press):-
                                                window(G_layar2,_,win_func2(_),"JAKARTA KERAS BOSS",250,100,810,630),
                                                close_window(G_layar1),
                                                update_window(_).
                                               
                                                win_func2(init):-
                                                %lawan_berkurang(_),
                                                G_timer is set_timer(_,1,time_func).


                                %--------------- KELUAR GAME --------------------%
                                keluar_game(press):-
                                                close_window(G_layar1).
                                                fail.

                                %-------------- TENTANG GAME ------------------%
                                about(press):-
                                                shell_execute("help.html").                              
               
                               
                %------------------------ FUNGSI TIMER ---------------------------------      %
                               
                time_func(end):-
                                                               
                                G_waktu:=G_waktu-1,
                                E:= printq(G_waktu),
                                font(15,50,"Times New Roman"),
                                text_out(360,20,E),
                               

                                (G_waktu=0->
                                message("TIME","PERMAINAN BERAKHIR\nAnda dinyatakan SERI",i), close_window(_)),
                               
                                lawan_berkurang(_),
                fail.


               
                %--------------------FUNGSI HITUNG JARAK----------------------------%
                hitung_jarak(end):-
                                G_jarak:=G_x1lawan-G_x1,
                                T:= printq(G_jarak),
                                font(8,10,"Times New Roman"),
                                text_out(20, 570, T),
                fail.

                %--------------------- FUNGSI LAWAN GERAK -------------------------%
                lawan_berkurang(end):-
                                (G_jarak>200->                                                                                                   
                               
                                G_x1lawan:=G_x1lawan-50,update_window(_)           
                                ),                                                                                                                              %jika jarak lebih dari 200

                                (G_jarak<190->                                                                                                   
                               
                                G_x1lawan:=G_x1lawan+50,update_window(_)          
                                ),                                                                                                                              %jika jarak kurang dari 190

                                (G_darah2>550->
                                message("TIME","PERMAINAN BERAKHIR\nAnda dinyatakan MENANG",i), close_window(_)
                                ).
                                                               
                fail.

                win_func2(paint):-
                                draw_bitmap(0,0,G_latar1,_,_),
                                draw_bitmap(G_x1,G_y1,G_char1,_,_),                                          %ini karakter jagoan
                                draw_bitmap(G_x1lawan,G_y1lawan,G_char2,_,_),     %ini karakter musuh           

                               
                                font(10,20,"Impact"),                                          %ini font untuk 2 biji yang dibawah
                                text_out(10, 20, "Internazionale"),   %ini nama jagoan
                                text_out(580, 20, "Primavera"),                        %ini nama musuh
                               
                                               
                                pen(20,rgb(100,0,0)),                                                         %ini fungsi draw pen nya
                                line(20,50,G_darah1,50),                                                   %ini darah jagoan
                                line(G_darah2+175,50,770,50),                                       %ini darah lawan

                                hitung_jarak(_),
                               
                               
                fail.

                kiri(paint):-
                P:=G_x1+20,
                                draw_bitmap(P,G_y1,G_char1,_,_),
                                update_window(_),
                                G_x1:=P.               

                kanan(paint):-
                Q:=G_x1-20,
                                draw_bitmap(Q,G_y1,G_char1,_,_),
                                update_window(_),
                                G_x1:=Q.

                pukul(paint):-
                P1:=G_y1,
                                draw_bitmap(G_x1,P1,G_char1pukul,_,_),
                                wait(0.2),
                                G_y1:=P1,
                                (G_jarak<200->                                                                                                   
                               
                                G_darah2:=G_darah2+30,update_window(_)              
                                ).

                tendang(paint):-
                Q1:=G_y1,
                                draw_bitmap(G_x1,Q1,G_char1tendang,_,_),
                                wait(0.2),
                                update_window(_),
                                G_y1:=Q1,

(G_jarak<200->                                                                                                   
                               
                                G_darah2:=G_darah2+50,update_window(_)              
                                ).

                %----------------------------fungsi Charcode--------------------------------------

                win_func2(key_down(39,_)):-                                                                          %kiri
                                kiri(_).   

                win_func2(key_down(37,_)):-                                                                          %kanan
                                kanan(_).

                win_func2(key_down(38,_)):-                                                                          %atas
                                update_window(_).

                win_func2(key_down(90,_)):-                                          %tombol z
                                pukul(_).
               
                               
                win_func2(key_down(88,_)):-                                          %tombol x
                                tendang(_).



               

fail.

Scenario Game 

             Skenario game ini adalah dimana kedua pemain (player dan AI) bertarung sampai darahnya habis, dan juga akan ada waktu selama 120 detik. Player akan dinyatan menang  jika berhasil mengalahkan AI sampai darahnya habis dan sebaliknya, Player akan dinyatakan kalah jika darahnya habis. Jika waktu sudah habis tetapi tidak ada yang kalah, maka darahnya yang paling sedikit akan dinyatakan kalah.

Pendeklarasian Objek Game

            Objek pada game ini ada 2 yang penting. Pertama Player yang bernama”Internazionale, yang kedua adalah AI yang bernama “Primavera”, ini diatur dalam :

win_func2(paint):-
                                draw_bitmap(0,0,G_latar1,_,_),
                                draw_bitmap(G_x1,G_y1,G_char1,_,_),                                          %ini karakter jagoan
                                draw_bitmap(G_x1lawan,G_y1lawan,G_char2,_,_),     %ini karakter musuh           

                               
                                font(10,20,"Impact"),                                          %ini font untuk 2 biji yang dibawah
                                text_out(10, 20, "Internazionale"),   %ini nama jagoan
                                text_out(580, 20, "Primavera"),                        %ini nama musuh
                               
                                               
                                pen(20,rgb(100,0,0)),                                                         %ini fungsi draw pen nya
                                line(20,50,G_darah1,50),                                                   %ini darah jagoan
                                line(G_darah2+175,50,770,50),                                       %ini darah lawan

                                hitung_jarak(_),
                               
                               
                fail.

Bagian penting lainnya adalah private class KeyManager. Digunakan untuk menangkap event yang dilakukan pada keyboard.

%----------------------------fungsi Charcode---------------------------

      win_func2(key_down(39,_)):-                           %kiri
            kiri(_).   

      win_func2(key_down(37,_)):-                           %kanan
            kanan(_).

      win_func2(key_down(38,_)):-                           %atas
            update_window(_).

      win_func2(key_down(90,_)):-               %tombol z
            pukul(_).
     
           
      win_func2(key_down(88,_)):-               %tombol x
            tendang(_).

     

fail.


Screenshot Game
 


REFERENSI :

rekan kerja :


Tidak ada komentar:

Posting Komentar

 

WELCOME IN MY WORLD Template by Ipietoon Blogger Template | Gadget Review