Dasar pembuatan game dengan Flash. bagian 2:Akselerasi Gerakan
AKSELERASI
Tutorial berseri ini adalah lanjutan dari bagian 1 sebelumnya yang membahas tentang kontrol dan gerakan dasar pesawat.
Sejauh ini, gerakan yang terjadi sangatlah mendasar dan terasa kurang realistis.. masih terasa ada hal yang kurang, yaitu akselerasi..
Biar pengontrolan pesawat lebih realistis sekaligus menambah kesulitan game, maka kita terapkan akselerasi dalam pergerakan. untuk itu kita harus sedikit mengingat kembali pelajaran fisika.. heh?,
tenang aja fisika yang dipake mendasar kok..
Nantinya hasilnya akan seperti berikut ini (gunakan tombol panah untuk menggerakkan pesawat):
menurut fisika, ada namanya kecepatan dan percepatan (dan perlambatan)..
saat kita menggerakkan pesawat, misal maju (dengan menekan gas), maka pesawat tidak akan bergerak dengan kecepatan langsung konstan, melainkan kecepatannya naik secara bertahap hingga kecepatan maksimalnya.. demikian pula kalo kita melepas pedal gas, maka sebelum berhenti, pesawat akan mengalami perlambatan.. (btw sejak kapan pesawat punya pedal gas.. :-p, ah sekedar contoh aja)
untuk itu dalam game ini kita definisikan 3 konstanta baru, yaitu percepatan,perlambatan,kecepatan maksimal, (untuk kecepatan minimal pasti bernilai 0, jadi enggak usah didefinisikan)
kebiasaan saya suka menaruh konstanta global di frame paling awal di layer khusus action tersendiri..
klik frame pertama, tekan F9 dan masukkan kode berikut
_root.percepatan = 4; _root.perlambatan = 1; _root.speedmax = 12;
karena konstanta berlaku global, maka ditulis di _root. sengaja saya beri awalan _root memberi tahu bahwa variabel itu di level _root.. (agar tidak bingung aja)
lalu ubah kode di pesawat_player menjadi berikut
onClipEvent (enterFrame) {
this._x += speed_x;
this._y += speed_y;
if (Key.isDown(Key.RIGHT)) {
// gerak ke kanan
if (speed_x < _root.speed_max) speed_x+=_root.percepatan;
//speed_x = 4;
}
if (Key.isDown(Key.LEFT)) {
// gerak ke kiri
if (speed_x > -_root.speed_max) speed_x-=_root.percepatan;
}
if (Key.isDown(Key.UP)) {
// gerak ke atas
if (speed_y > -_root.speed_max) speed_y-=_root.percepatan;
}
if (Key.isDown(Key.DOWN)) {
// gerak ke bawah
if (speed_y < _root.speed_max) speed_y+=_root.percepatan;
}
if ((not Key.isDown(Key.RIGHT)
and not Key.isDown(Key.LEFT))
or (not Key.isDown(Key.UP)
and not Key.isDown(Key.DOWN))
) {
if (speed_x>0) speed_x-=_root.perlambatan;
else if (speed_x<0) speed_x+=_root.perlambatan;
if (speed_y>0) speed_y-=_root.perlambatan;
else if (speed_y<0) speed_y+=_root.perlambatan;
}
}
perhatikan bedanya, lebih asyik khan
source:pesawat01_2.fla



Saya sangat tertarik dg artikel di atas, apakah Macromedia Flash mx ini dapat d gunakan utk mmbuat brbagai macam kategori game (action, adventure, RPG, dll) ? Dan bisa dgunakan sampek finishing nya nggak, atau perlu aplikasi lain ? Thanks