Disini saya akan menjelaskan tentang pembuatan game “pesawat” dengan menggunakan Flash dan ActionScrift. Disini akan dijelaskan tentang pembuatannya secara step by step, agar lebih jelas dan dapat dipraktekan oleh si pembaca. Langkah-langkahnya adalah sebagai berikut :
1. Menyiapkan Stage dan Pembuatan Obyek Utama
Pertama yang harus kita lakukan adalah menentukan ukuran bidang permainan. Setelah itu set frame rate-nya (fps). Frame rate adalah dalam satuan frame per second (fps). Semakin besar nilainya, maka semakin halus animasinya. Nilai defaultnya 12, saya ganti dengan 30, karena 12 terlalu kecil sehingga gerakan menjadi kurang mulus. Obyek yang kita kendalikan adalah sebuah pesawat tempur. Jadi sebelumnya kita harus menggambar sebuah pesawat di stage, karena cukup susah menggambar pesawat yang keren kalo cuma dibayangkan saja. Untuk itu, biar lebih bagus, kita butuh model sebagai contoh. Misalkan kita mengambil model salah satu gambar pesawat nazi jerman dari wikipedia, lalu menggambarnya ulang dengan sedikit modifikasi. Tidak perlu dibuat detail banget, karena nanti pada tahap finishing baru obyek pesawat ini disempurnakan penampilannya. Kita tentu tidak mau membuang-buang waktu dengan men-switch otak kita menjadi designer mode. Bahkan pesawatnya cukup kotak-kotak saja, asal udah berbentuk pesawat, urusan desain bisa dikerjakan belakangan kalo ga suka menggambar, bisa diserahkan ke orang lain sebagai desainer.
2. Menggerakkan Obyek Utama
Kita ubah ukuran pesawat sesuai dengan keinginan (transform) dan konversi ke movieclip, beri nama “pesawat”. Pada field instance name, beri nama, aku isi dengan nama pesawat_player. Obyek perlu diberi nama agar bisa dikenali pada saat scripting. pesawat_player adalah instance name dari movie clip. Klik pesawat_player dan buka panel actions, atau tekan F9 (ingat2lah F9 karena nantinya tombol ini sering digunakan), lalu tulis kode berikut:
onClipEvent (enterFrame) {
if (Key.isDown(Key.RIGHT)) {
// gerak ke kanan
this._x = this._x + 4;
}
if (Key.isDown(Key.LEFT)) {
// gerak ke kiri
this._x = this._x - 4;
}
if (Key.isDown(Key.UP)) {
// gerak ke atas
this._y = this._y - 4;
}
if (Key.isDown(Key.DOWN)) {
// gerak ke bawah
this._y = this._y + 4;
}
}
Perhatikan bahwa actionscript adalah case sensitive, artinya kita harus memperhatikan penulisan huruf besar dan kecil pada nama variabel dan kata kunci. Kalo udah, coba jalankan dengan Ctrl+Enter. Nah obyek akan dapat digerakkan dengan keyboard. Ini adalah dasar-dasarnya.
3. Penjelasan Skrip
Penjelasannya begini, tiap-tiap obyek movieclip punya properti _x, dan _y yang menunjukkan posisi koordinat di layar. Pada tiap-tiap kondisi penekanan tombol keyboard, Obyek Key dengan event isDown, maka koordinat obyek ditambahkan/dikurangi 4. Misalnya jika ke kanan maka this._x = this._x+4;. This menunjukkan obyek itu sendiri, yaitu pesawat_player. Karena skrip merupakan actions pada pesawat_player, maka current timeline saat itu adalah pesawat_player. this untuk menyebutkan dirinya sendiri, yaitu pesawat_player (current timeline). Jadi this._x maksudnya adalah koordinat _x dari this (pesawat_player)..Ini adalah penyebutan dengan menggunakan relative path. Dalam terminologi pemrograman berorientasi/berbasis obyek, this adalah instansi obyek movieclip dan _x adalah properti atau atribut. Obyek-obyek membentuk hirarki dengan _root sebagai paling atas :
+root
+–pesawat_player
coba ganti baris
this._x = this._x + 4;
dengan
root.pesawat_player._x = _root.pesawat_player._x + 4;
Coba kita jalankan dan perhatikan :
_root.pesawat_player adalah absolute path dari Movieclip pesawat_player.
Jika kode kita berada pada pesawat_player (jika current timeline adalah pesawat_player). Maka secara relative path, MovieClip pesawat_player cukup disebut dengan this. Absolute path bersifat relatif terhadap _root, sehingga selalu dimulai dari _root. Apakah penjelasan ini membingungkan anda? bagi anda yang pernah mempelajari pemrograman atau pemrograman OOP sepertinya tidak masalah, tetapi bila tidak lanjutkan saja walaupun masih abu-abu. Lama-kelamaan kalo terbiasa pasti paham juga.
Tidak ada komentar:
Posting Komentar