Saturday, April 3, 2010

Simulasi GLBB pada Flash


Entah kenapa aku jadi pengen melanjutkan postinganku tentang GLB terdahulu. Rasanya tidak lengkap kalau ada GLB tapi tidak ada GLBB :). Untuk itu ada baiknya sebelum membaca postinganku kali ini kamu baca dulu postinganku sebelumnya tentang Simulasi GLB pada FLash. Well, seperti yang kita tahu, GLBB adalah singkatan dari Gerak Lurus Berubah Beraturan. Gerak Lurus Berubah Beraturan bisa diartikan gerak lurus suatu obyek dengan percepatan konstan. Artinya kecepatan obyek akan bertambah atau berkurang secara bertahap seiring dengan berjalannya waktu. Hal ini terjadi akibat adanya percepatan konstan tadi. Ingat! Percepatan di sini selalu konstan dan tidak sama dengan nol. Kenapa tidak sama dengan nol? Lah, kalau percepatannya nol kecepatan obyek nantinya tidak akan pernah bertambah. Trus apa bedanya kalo gitu dengan GLB? :D Okelah, to the point aja, kita langsung ke bagian yang lebih seru.

Kalau dilihat-lihat, animasi di atas tidak beda jauh dengan animasi GLB yang lalu. Di sini aku beri tambahan beberapa komponen. Komponen itu adalah kecepatan awal dan percepatan. Pada animasi GLB yang lalu memang aku rasa tidak perlu ada kecepatan awal. Toh kecepatan awalnya dengan kecepatan akhir akan sama saja. Di sini beda, aku beri text box kecepatan (di sebelah kanan) untuk memantau kecepatan bola selama bergerak. Jadi kamu hanya bisa memanipulasi kecepatan awal dan percepatan saja. Satuan kecepatan di sini aku buat sama dengan simulasi GLB, yaitu pixel per detik.

Simulasi GLBB di atas penjelasannya sederhana saja. Sebagai contoh kamu memasukkan kecepatan awal adalah 0 dan percepatan adalah 10. Jadi ketika kamu mengklik tombol go!, maka bola akan memiliki kecepatan 10 pixel/detik pada detik pertama. Dan bertambah lagi kecepatannya menjadi 20 pixel/perdetik pada detik yang kedua. Begitu seterusnya.

Cara Bikin
Caranya masih sama dengan pembuatan animasi GLB. Aku selalu menggunakan setInterval untuk penentuan waktu.
var kec:Number = 0;
var dur:Number = 10;
var perc:Number = 10;

var intervalID:Number = setInterval(timer, dur);
function timer():Void {
kec += int(perc)/100;
_root.bola._x += (kec/100);
_root.bola._rotation += (kec/100);
if (_root.bola._x>=500) {
_root.bola._x = 0;
}
if (_root.bola._x<0) {
_root.bola._x = 500;
}
}
Penjelasan script di atas sebagian besar sudah aku jelaskan di postinganku sebelumnya tentang GLB. Di script ini aku hanya menambahkan variabel perc untuk mengatur percepatan. Dan di dalam fungsi timer() aku menambahkan kecepatan sebesar jumlah percepatan. Ingat, fungsi timer() sudah diatur sedemikian rupa sehingga nantinya statement di dalam fungsi ini akan dijalankan sesuai interval yang sudah ditetapkan sebelumnya. Interval itu sendiri sudah diatur dengan menggunakan fungsi setInterval. Hmm, dengan script di atas saja kamu tidak akan bisa membuat animasi yang kamu lihat di awal tadi. Kenapa? Tentu saja, animasi di awal tadi lebih interaktif sehingga nilainya bisa dimanipulasi oleh user. Jika kamu tertarik untuk mempelajarinya, download aja file fla dan swf-nya di sini: download animasi GLBB.

0 comment(s):

Post a Comment

feel free to write your comment here.. :)