
CARA MEMBUAT PERMAINAN TEMBAK SEDERHANA
April 22, 20081. Untuk membuat permainan tembak sederhana, langkah pertama adalah membuat movie clip yang akan bergerak mengikuti kursor mouse, kemudian beri nama instance “target_mc”.
2. Langkah kedua adalah membuat movieclip sasaran yang akan menjadi object tembak, kemudian beri nama instance “sasaran_mc”.
3. Langkah ketiga adalah membuat movieclip area yang akan menjadi area tembak, buat kotak dengan Rectangle Tools, kemudian sesuaikan ukuran width dan height movieclip area tersebut dengan ukuran panjang dan lebar movie flash. Misal panjang movie flash = 550, lebar movie flash = 400 (ini adalah ukuran standart flash). Maka movieclip area ini berukuran width = 550 dan height = 400, kemudian letakan pada posisi X = 0, dan Y = 0. Setelah disesuaikan posisinya, kemudian ubah property alpha movie clip tersebut menjadi 0 dan beri nama instance “area_mc”.
4. Langkah ke empat adalah membuat text skor dan meleset, untuk melihat berapa skor dan tembakan yang meleset. Caranya buat dengan Text Tools, dua Static Text yang berisi text “SKOR” dan “MELESET”, kemudian buat juga dua Dynamic Text, yang berisi nama variable “skor” dan “meleset”. Sesuaikan posisi sehingga tampak enak dilihat mata.
Letakan langkah pertama sampai langkah ke empat di frame ke-1, sehingga tampilannya menjadi seperti gambar di bawah ini :

Tampilan Frame ke-1, Permainan Tembak Sederhana
5. Langkah kelima adalah membuat tampilan pada Frame ke-2, hapus semua gambar yang ada pada frame ke-2, kemudian buat Static Text “SELESAI”
6. Langkah keenam adalah membuat Dynamic Text dengan nama variable “akhir”, kemudian diproperties ubah Line Type dari Single Line, menjadi Multiline, kemudian letakan sedemikian rupa sehingga tampilan menjadi seperti gambar di bawah ini :

Tampilan Frame ke-2, Permainan Tembak Sederhana
Berikut adalah Struktur Timeline permainan Tembak Sederhana :

Struktur Timeline, Permainan Tembak Sederhana
7. Langkah ketujuh adalah memberikan Script pada frame 1, seperti berikut ini :
stop();
skor = 0;
meleset = 0;
startDrag(target_mc, true);
Mouse.hide();
area_mc.onRelease = function() {
if (target_mc.hitTest(sasaran_mc)) {
skor += 1;
} else {
meleset += 1;
}
};
function acakSasaran() {
sasaran_mc._x = random(550);
sasaran_mc._y = random(400);
}
setInterval(acakSasaran,750);
_root.onEnterFrame = function() {
if (skor >= 25) {
gotoAndStop(2);
delete _root.onEnterFrame;
}
}
Penjelasan Script :
stop();
skor = 0;
meleset = 0;
stop() akan membuat playhead tetap pada frame 1, skor = 0 dan meleset = 0 akan mendeklarasikan variable awal skor dan meleset yaitu 0.
startDrag(target_mc, true);
Mouse.hide();
Action startDrag() akan membuat target_mc mengikuti kursor mouse, sedangkan true adalah lock, jika bernilai true maka mouse akan selalu berada ditenggah-tenggah movieclip sedang jika bernilai false maka sebaliknya. Mouse.hide(); akan menyembunyikan kursor mouse, sehingga hanya ada target_mc saja yang tampak seperti kursor mouse.
area_mc.onRelease = function() {
if (target_mc.hitTest(sasaran_mc)) {
skor += 1;
} else {
meleset += 1;
}
};
saat mouse diklik kemudian dilepas (area_mc.onRelease) if(target_mc.hitTest(sasaran_mc) akan mengecek, jika target_mc menyentuh atau bersinggungan dengan sasaran_mc, maka statement di bawahnya akan dijalankan yaitu skor += 1 (atau menambah skor dengan angka 1), yang artinya berhasil menembak dengan akurat, namun sebaliknya, jika gagal menyentuh atau bersinggungan dengan sasaran_mc, maka statement di bawah else yang akan dijalankan, yaitu, meleset += 1 (atau menambahkan meleset dengan angka 1), yang artinya gagal menembak dengan akurat.
function acakSasaran() {
sasaran_mc._x = random(550);
sasaran_mc._y = random(400);
}
setInterval(acakSasaran,750);
function acakSasaran berfungsi untuk mengacak posisi x dan y sasaran_mc sehingga tidak diketahui dimana selanjutnya posisi dari sasaran_mc, yang diaktifkan dari setInterval(acakSasaran,750); angka 750 berarti setiap 750/1000 detik, function acakSasaran akan dijalankan yang berarti akan diacak posisi sasaran_mc di tempat yang berdeda.
_root.onEnterFrame = function() {
if (skor >= 25) {
gotoAndStop(2);
delete _root.onEnterFrame;
}
}
onEnterFrame adalah Event Handler yang akan menjalankan statement di bawahnya secara berulang-ulang, sehingga cocok digunakan untuk mengetahui permainan masih berjalan atau sudah berakhir, jika skor sudah lebih besar atau sama dengan 25, maka statement di bawahnya akan dijalankan, yaitu gotoAndStop(2) yang akan memerintahkan playhead menuju frame ke-2 yang berisi tampilan permaian yang sudah berakhir, kemudian delete _root.onEnterFrame akan menghilangkan _root.onEnterFrame, sehingga statement di bawah _root.onEnterFrame tidak akan dijalankan lagi.
8. Langkah kedelapan adalah memberikan Script pada frame 2, seperti berikut ini :
stop();
Mouse.show();
skorAkhir = skor-meleset;
if (skorAkhir<0) {
skorAkhir = 0;
}
akhir = “Anda telah berhasil menyelesaikan permainan ini, skor akhir Anda adalah = ” +skorAkhir;
Penjelasan Script :
Mouse.show();
Akan kembali menampilkan kursor mouse yang tadi di hide.
skorAkhir = skor-meleset;
if (skorAkhir<0) {
skorAkhir = 0;
}
skorAkhir adalah nilai yang didapat dari skor dikurangi meleset yang artinya semakin sering menembak tanpa meleset maka akan semakin tinggi skorAkhir. Kondisi jika skorAkhir kurang dari 0 maka skorAkhir disamadengankan 0, untuk menghindari skorAkhir yang minus, jika terlalu banyak nilai melesetnya.
akhir = “Anda telah berhasil menyelesaikan permainan ini, skor akhir Anda adalah = ” +skorAkhir;
Script diatas menyambung, adalah memberikan kalimat pada variable akhir, yang juga menampilkan skorAkhir dari pemain.





