Search:

Kamis, 30 Januari 2014

Game Maker : Event Dan Penjelasannya

Tahukah kalian apa itu Game Maker? bagi yang belum tahu silahkan baca postingan berikut dengan klick disini...

Nah jika sudah tahu saya akan menjelaskan...

Dalam Game Maker kita akan menemukan apa yang namanya Event ,, Event dalam Game Maker adalah pengelompokan dari suatu Action (Aksi) dengan Fungsinya masing-masing.
Apa pengaruhnya? Oke.. kita perlahan tapi pastii..

Jadi begini, dalam suatu peng'eksekusian sebuah Game , diperlukan adanya sebuah Aksi-Aksi yang membuat pemain dapat berinteraksi dengan Game,, semakin Pemain lebih leluasa beinteraksi dengan game maka Isi , Tema , dan Maksud dari game itu dirasakan oleh Pemain , dan jika begitu maka Game dapat Baik dimata sipemain.

Nah,, pada sebuah Aksi dalam Game itu dipengaruhi dengan apa yang Pemain perintahkan,, sebagai contoh begini :
  • Jika pemain menekan tombol mouse tepat ditombol bertuliskan "Bertahan" maka character yang dimain kan akan Bertahan ,dan juga seperti
  • Jika pemain menekan tombol keyboard kekanan , maka Character dalam game akan berjalan kekanan.
Dari contoh diatas, didapat bahwa sesuatu yang diperintahkan oleh Pemain akan dijalankan oleh Game itu, dan hasilnya Game akan membuat sebuah Aksi yang Pemain perintahkan.
Dan bagaimana jika Aksi yang dijalankan bukan kehendak dari User/Pemain? Apalagi itu memang bukan disusun (dirancang) dari gamenya langsung?.
Pastinya Game akan buruk dimata pemain dong ,sehingga Opini baik terhadap game menjadi berkurang.

Oke, dengan begitu jika sudah mengerti mengenai pengaruh Aksi terhadap game maka kita akan membahas tentang Hubungan antara Event (topik posting ini) dengan Aksi (Action) ,

Seperti yang kita ketahui bersama ,Aksi berpengaruh terhadap Pemain , nah yang dibutuhkan adalah perantara antara Aksi dengan Pemain, apakah Perantaranya? yap.. itulah Event, Event ini adalah sebuah pengelompok Aksi ,sehingga Aksi akan melakukan Aksinya dengan syarat ,dengan gambaran Event itu majikannya ,Aksi itu Budaknya (sorry agak kasar).
Jika Event tidak memenuhi syarat /Aktif / Tereksekusi/ Terjadi (Ini bahasa yang sering saya gunakan)
maka Aksi yang dibungkusnya tidak akan beraksi.

Sudah Paham?...
Nah,, kalau belum Paham juga akan aku buat sebuah susunan :
   Sebagai Contoh ada kasus seperti ini :
  • "Pemain menekan tombol kanan dan Character berjalan kekanan."
                               <dengan susunan seperti ini>
  • Pemain -[menekan tombol kanan]- (I) dan -[Character berjalan kekanan]- (II) .

    ( I ) adalah sebuah syarat , sedangkan ( II ) adalah sebuah aksi ,,
    Dengan berarti Eventnya adalah : Menekan Tombol Kanan
    dan Aksinya adalah : Character berjalan Kekanan

Nah,, jika Event tidak aktif (tidak menekan Tombol Kanan) maka Aksi berjalan kekanan tidak akan dilakukan , sedangkan sebaliknya jika Event aktif maka Aksi berjalan kekanan akan dilakukan , sehingga Perintah pemain dan Aksi yang dilakukan tepat :) ...


Nah bagaimana cara membuat Event pada Game Maker?
mungkin hampir semua orang sudah tahu caranya, tapi apakah dari semua orang itu sudah mengetahui SEMUA fungsi-fungsi dan kegunaan Event di Game Maker? ,,,

Oke yang belum tahu cara membuat Event silahkan lihat gambar dibawah :



 Oke,,, cara membuatnya adalah dengan cara ,klick object 2x (sesuai dengan object yang ingin ditambahkan eventny) ,, jika sudah berhasil terbuka Window Objectnya maka selanjutnya pilih tombol "Add Event" , maka akan keluar pilihan Event-Event , nah kita akan membahas kegunaan masing-masing event diatas...

Namun saya rasa, jangan dipaksakan dibaca sampai habis penjelasan eventnya (terlalu panjang) , karena prinsip saya dalam programming adalah "Mencoba , tidak tahu baru baca , kalau berhasil Baca juga , yang penting Coba dulu" ,, tapi itu perinsip saya,, tidak tahu kalian gimana ..

Oke ,,,jika kalian ingin tetap membaca,,  sekarang saya akan menerangkan apa Fungsi dari semua Event , di mulai dari Create Event:

Create event
Event ini dikatakan aktif/terjadi jika instance dari object telah di Create (dibuat ke Room).
Event ini adalah event pertama yang di'eksekusi pada sebuah instance , jadi secara normal atau kebanyakan pengguna Game Maker menggunakan Event ini untuk mendeklarasikan variable-variable yang akan digunakan oleh instance tersebut di-Event yang lain (seperti Step,Draw dan lain-lain).

Destroy event
Event ini dikatakan aktif/terjadi jika instance telah di-destroy (dihilangkan dari room). untuk lebih rinci , Event ini dieksekusi saat sebelum instance itu di-destroy/dihancurkan , jadi dengan kata lain keberadaan Instance masih ada dan diketahui saat Destroy Event ini dilaksanakan, kebanyakan pengguna tidak terlalu mengandalkan Event ini , tetapi kamu dapat menggunakannya sebagai contoh untuk membuat Instance lain atau Instance yang sama.

Alarm events
Setiap instance hanya dapat menggunakan 12 alarm. Alarm 0 - Alarm 11, kamu dapat meng-set waktu yang diperlukan untuk mengeksekusikan Alarm Event ini . jika Event Create di eksekusi saat instance dibuat,
maka event ini dieksekusi saat variable alarm sama dengan 0 ; untuk lebih jelasnya lihat contoh dibawah :
  •  Event Alarm 0 akan aktif jika variable alarm[0] telah dideklarasikan dan alarm[0]=0
          ** yang dimaksud "telah didekarasi" adalah saat value alarm[0] ditentukan. contoh "alarm[0]=30"
  •  Event Alarm 1 akan aktif jika variable alarm[1] telah dideklarasikan dan alarm[1]=0 ,
     dan seterusnya hingga.
  •  Event Alarm 11 akan aktif jika variable alarm[11]=0.
  •  Namun , jika variable alarm[0] belum dideklarasikan maka Event Alarm 0 tidak akan aktif.
  •  Dan Value dari setiap alarm[ ] (0-11)  akan berkurang valuenya setiap (1/FPS)detik (secara default FPS game adalah bernilai 30,, jadi (1/FPS) detik adalah 1/30 detik )
Event Alarm ini sangat berguna untuk pembuatan game, kamu dapat menggunakan Event ini untuk melangsungkan kejadian dari waktu ke waktu , seperti contoh "Monster akan berganti arah jalan setiap 20 langkah (jika FPS=30 maka berarti Monster akan berganti arah jalan setiap 20/30 atau 2/3 detik)."

Step events
Step Event akan mengeksekusikan/diaktifkan setiap waktu selama Game berjalan. Kamu dapat menaruh aksi yang dibutuhkan untuk dijadikan pengeksekusian terus menerus. Namun karena "pengeksekusian setiap langkah" ini membuat kita harus berhati-hati. Jangan menaruh banyak aksi yang rumit pada Event ini apa lagi dengan Instance yang banyak. hal ini perlahan dapat membuat Game menjadi turun atau lambat. untuk lebih jelas, ada 3 Step Event yang berbeda. secara normal kamu dapat memakai satu saja. Tapi dengan menggunakan menu kamu dapat memilih Begin Step atau pun End Step. Begin Step adalah Event Step yang dijalankan sebelum Step (Event Step yang biasa) dan End Step adalah Event Step yang dijalankan setelah Step (Event Step yang biasa)

Collision events
Kapanpun 2 instance bertemu/bertabrakan (sprite saling tumpang tindih) maka Collision Event akan Aktif/dieksekusikan , Tepatnya, saat Instance bertabrakan dengan Instance lain yang sudah didefinisikan sebelumnya , maka Collision Event akan dieksekusikan.

pada akhir pembuatan Collision Event , akan timbul menu untuk memilih object yang akan didefinisikan sebagai Instance yang akan bertubrukan. jika kamu memilih salah satu sebagai contoh obj_tembok , berarti kamu telah membuat Event dengan definisi "Jika Instance ini bertubrukan dengan instance obj_tembok maka Event akan aktif/ ter-eksekusi".

Secara umum (atau dari pengalaman saya) Collision identik dengan Solid dan Non-Solid, sub-event/aksi yang bekerja sebagai aksi tubrukan harus berinteraksi dengan object yang bersifat Solid, jika peng-aksi tubrukan itu bersifat Solid dengan berinteraksi denga object Non-solid, maka hasilnya akan berbeda dari apa yang direncanakan. Secara pribadi dalam memahami Event ini , saya membuat gambaran pada sifat object yaitu bola adalah non-solid dan batu/tanah adalah solid, karakter itu non-solid dan tembok itu solid. dengan inti bahwa Solid itu adalah object yang sifatnya sebagai pemantul.

Tetapi, terlepas dari itu semua jika tidak ada aksi yang ada pada Collision Event, maka tidak ada yang akan perubahan yang terjadi , pada saat itu Instance tetap berjalan seperti biasa .

Pada saat Collision Event dieksekusi ,terkadang beberapa kasus akan terjadi seperti berikut ;

Saat object lain adalah solid, letak Instance akan kembali keposisi awal (sebelum terjadinya tabrakan). Lalu Collision Event akan diaktifkan/ dilaksanakan. Akhirnya , Instance akan berpindah ke posisi yang baru. Jadi jika event tersebut adalah pemantulan arah sudut jalan Instance, tetapi Instance akan memantul kembali ke tembok (atau object yang didefinisikan) dan tidak menjauh. Jika masih tetap dalam posisi saling bertubrukan , Instance akan kembali keposisi sebelumnya. jadi secara efektif Instance berhenti bergerak.

Namun saat object lain tidak solid, Instance tidak akan kembali keposisi semula (tidak seperti pada saat object lain adalah solid), berarti Event akan di eksekusi dengan posisi Instance pada saat itu.
namun , tidak ada pengecekan kedua kali untuk Collision , jika kamu memikirkan tentang itu , hal secara logika seperti ini dapat terjadi.

Nah... Karena object tidak solid ,maka kita dapat menyimpulkan gerak akhirnya. Tetapi bagaimana pun juga hasil game dari Event itu sendiri yang akan memberitahu kita apa yang sebenarnya disimpulkan/dihasilkan .

walaupun banyaknya kendala, dan kerumitan hal-hal yang Collision Event kerjakan , namun banyak juga kegunaan dari Event ini . seperti membuat Instance memantul ke object lain (sebagai contoh tembok) atau dapat untuk saat-saat Object dihancurkan ,seperti peluru yang mengenai object lain.

Keyboard events
Disaat User menekan tombol , Keyboard Event akan aktif pada semua Instance dan juga objectnya. Tidak hanya satu tombol yang dapat dijadikan Event, namun semua tombol pada keyboard* dapat dijadikan sebagai Event, kamu dapat memilih tombol yang dimaksud pada menu yang muncul saat kamu ingin membuat Keyboard Event. namun ada tombol khusus yang di jadikan sebagai Event pada Keyboard Event yaitu <No Key> dan <Any Key> , <No Key> akan aktif jika tidak ada tombol pada keyboard yang ditekan , sedangkan <Any Key> akan aktif jika ada salah satu tombol pada keyboard yang ditekan.Dari banyaknya Event pada Keyboard Event, Pengaktifan sebuah tombol keyboard tidak akan mengganggu Keyboard Event yang lain ,, dengan kata lain Event ini tidak dapat terganggu jika User menekan lebih dari satu tombol pada Keyboard . Dengan catatan ,untuk tombol pada numeric keypad hanya dapat melakukan hasil yang semestinya jika <NumLock> ditekan.

Mouse events
Mouse Event akan aktif/tereksekusi jika Cursor Mouse berada pada sprite Instance. Pada Mouse Event lebih dari tiga jenis event , namun Mouse Event yang sering digunakan adalah :
  1. Button
       Event jenis ini akan berfungsi jika tombol mouse ditekan, dengan berarti saat Mouse masih dalam posisi ditekan , maka Jenis ini akan selalu aktif/tereksekusi.
       Pada jenis ini , terdapat 3 event , yaitu : Left Button, Right Button , dan Middle Button.
  2. Pressed   Event jenis ini akan berfungsi jika tombol Mouse ditekan pada saat status Mouse sebelumnya masih belum ditekan, dengan berarti jika dalam sekali tekan (walaupun selama apapun) ,Event Jenis ini akan Aktif sekali saja ,, jika mouse dilepas dan ditekan kembali maka Event ini akan aktif kembali, dan begitu seterusnya.
       Pada jenis ini , terdapat 3 event , yaitu : Left Pressed, Right Pressed , dan Middle Pressed.
  3. Released   Event jenis ini akan berfungsi jika tombol Mouse dilepas pada saat status Mouse sebelumnya masih yaitu ditekan, sama seperti Pressed namun perbedaannya adalah Pressed aktif jika Tombol mouse baru ditekan.
       Pada jenis ini , terdapat 3 event , yaitu : Left Release, Right Release , dan Middle Release.
Other events
Dibawah ini adalah penjelasan dari masing-masing event yang ada pada Other Events , event-event ini dapat sangat membantu di game kalian. Kamu dapat menemukan event-event ini pada menu Other Event : 
  • Outside room
       Event ini terjadi jika Instance sepenuhnya keluar dari Room (tidak terlihat) saat-saat ini dapat kita buat sebagai moment Penghapusan Instance (Instance Destroy)
  • Intersect boundary
       Event ini terjadi saat Instance benar-benar berada pada Room (setidaknya dapat terlihat di Room , walaupun sprite pada Instance terpotong) , dengan kata lain , Event ini adalah kebalikan dari event Outside Room.
  • Views
       Ini adalah Event yang akan sangat berguna ketika kamu menggunakan Views pada Room. Event ini akan aktif jika Instance benar-benar sepenuhnya berada di luar Room atau memotong batas View.
  • Game start   Event ini akan aktif/terjadi untuk semua Instance di Room pertama dan ketika Game benar-benar baru mulai. ini terjadi sebelum Room Start Event (lihat dibawah) tetapi terjadi setelah Creation Event pada semua instance diroom. Event ini khususnya dibuat hanya untuk satu "controller" object dan digunakan untuk memulai seluruh Background Music dan untuk menginisal-isasi (mendeklarasi) semua variable , ataupun mengambil data dari luar game.
  • Game end
      
    Event ini terjadi untuk semua Instance pada saat Game akan berakhir. dan lagi dikhususkan untuk satu object yang menggunakannya (dikhususkan bukan berarti diharuskan). Seperti contoh event ini digunakan untuk menyimpan data pada file.
  • Room start
       Event ini terjadi untuk semua Instance pada saat memulai Room. lebih tepatnya Event ini terjadi setelah Creation Event.
  • Room end
      
    Event ini terjadi untuk semua Instance yang ada pada saat Room berakhir.
  • No more lives
      
    Gane Maker membuat Lives System secara default. disediakan juga Action yang digunakan untuk menge-set atau merubah jumlah lives. Kapanpun jumlah lives lebih kecil atau sama dengan 0 , maka event ini akan aktif/tereksekusi. Ini secara umum digunakan utnuk mengakhiri sebuah game atau merestart game.
  • No more health
       Game Maker
    juga membuat Health System secara default. dan juga menyediakan Action Action untuk menge-set atau merubah jumlah Healt. Sama seperti event sebelumnya (No More Lives) yaitu ketika jumlah Health lebih kecil atau sama dengan 0 , maka event ini akan aktif/tereksekusi .
  • Animation end
       Seperti yang kita ketahui, Animasi terdiri dari sejumlah gambar yang ditampilkan satu per satu. Setelah gambar sudah berada pada jumlah terakhir (gambar Animasi terakhir) ditampilkan maka gambar akan kembali lagi keawal yaitu gambar animasi yang pertama dan begitu seterusnya. Nah,, Event ini aktif/tereksekusi tepatnya pada saat moment-moment itu terjadi (berakhirnya gambar animasi dan ulang ke awal).
  • End of path
       Event ini terjadi ketika saat Instance yang mengikuti Path dan berakhirnya Path telah ditemukan. (Path adalah sebuah jalur yang dapat kita buat di Game Maker , namun terdapat fungsi-fungsi yang dapat digunakan untuk penggunakan Path ini, seperti membuat Object mengikuti jalur path dan sebagainya)
  • Close button
       Event ini terjadi ketika User meng-klik tombol Close pada window. namun Event ini hanya terjadi/aktif ketika me-non'aktifkan pada Game Setting yaitu pilihan untuk dapat melakukan Close sebagai Tombol Escape (pada keyboard "esc").
  • User defined
       Terdapat 16 dari Event ini. Itu semua secara normal tidak akan terjadi sampai kamu sendiri yang mengaktifkan (call) event ini dari sebuah Code.
Draw event
Instance ,ketika visible (terlihat) , menggambar Spritenya untuk setiap langkah dalam Game. Ketika kamu menerapkan Aksi pada Draw Event, maka sprite dari Instance tidak digambar (tidak seperti saat Draw Event tidak mempunyai Aksi) , tetapi Aksi pada Draw Event ini akan di eksekusi/dijalankan sebagai gantinya. ini dapat digunakan untuk menggambar apapun yang lain dan lebih dari menggambar sprite saja, atau terlebih dahulu membuat beberapa perubahan pada parameter sprite. banyak sekali Drawing Action pada Game Maker yang secara khusus dibuat/dijalankan di Draw Event ini (secara default tidak dapat dijalankan dievent lain) . Dengan Catatan bahwa Draw Event ini hanya di eksekusi atau diaktifkan jika Object itu Visible (terlihat). Dan juga , terlepas dari apapun yang kamu gambar , Collision Event hanya didasarkan untuk Sprite pada Instance (Sprite adalah gambar yang secara default digambar oleh Instance).

Key Press events
Event ini sama seperti Keyboard Event tapi Event ini hanya aktif sekali ketika Key ditekan (sama seperti Event Mouse Pressed) . Event ini sangat berguna ketika kamu ingin sebuah Aksi (pada saat tombol keyboard ditekan) yang hanya terjadi sekali saja.

Key Release events
Event ini juga sama seperti Keyboard Event tetapi Event ini hanya aktif ketika Key baru dilepas (cara kerjanya sama seperti pada Event Mouse Release)

Pada banyak situasi , sangat penting jika kita memahami urutan Proses Event dalam Game Maker.
Urutan Proses nya adalah sebagai berikut :
  • Begin step events
  • Alarm events
  • Keyboard, Key press, and Key release events
  • Mouse events
  • Normal step events
  • (now all instances are set to their new positions)
  • Collision events
  • End step events
  • Draw events
Create Event, Destroy Event dan lainnya dilakukan hanya ketika hal yang hal-hal yang sesuai telah terjadi.
Event-Event yang disusun diatas adalah Event-Event yang diulang setiap stepnya.

Bagaimana dengan penjelasan-penjelasan tentang Event dalam Game Maker?..

Walaupun saya melihat langsung ke "Game Maker Help" (silahkan check, sebab isinya hampir sama) namun tidak berarti juga saya hanya Copy-Paste-Copy-Paste saja,, beberapa kata-kata dan penjelasan-penjelasan yang kurang saya tambahkan dan tidak lupa saya juga mentranslate sendiri kedalam Bahasa Indonesia yang baik dan benar (serta dapat diterima oleh teman-teman yang baru membaca).

Selama (6+3) jam saya luangkan untuk membuat Posting ini saja, tidak sembarang Reposting dan Ambil sumber, jadi maaf jika Postingan saya berjarak antara 1-3 hari , itu dikarena kan Tangan saya dan Imajinasi saya yang mengerjakannya sendiri...

Saya harap Programmer-Programmer hebat timbul dari usaha saya hari ini..

Oke tunggu Posting selanjutnya :) untuk yang meng-copy harap terapkan sumber ya ^_^

Semoga Bermanfaat~

3 komentar: