Tanya dong tentang mengenerate random.
Jadi, saya pingin membuat sebuah animasi beberapa ikan yang bergerak secara random pada stage. Setiap ikan bergerak dari satu titik ke titik lain ada perlambatan yang terjadi,. Kemudian saat perlambatan selesai atau ikan telah berhenti, ikan akan bergerak ke posisi berikutnya dengan tetap dengan perlambatan. Saya tidak menggunakan Tween Class karena grakannya kurang acak dn takut susah mengatur fungsi enterFrame nya. Berikut ini codenya..
Pertama saya buat class untuk mengatur gerakan ikan..
Kemudian pada class utama diberikan kode berikut..Code:package { import flash.display.*; import flash.events.*; public class Fish extends MovieClip { private var easing:Number; private var Xtarget:Number; private var Ytarget:Number; private var batasKa:Number = 400; private var batasBa:Number = 300; public function Fish(X:Number, Y:Number) { Xtarget = X; Ytarget = Y; easing = 0.05; addEventListener(Event.ENTER_FRAME, moveThis); } private function moveThis(e:Event):void { var vx:Number = (Xtarget - this.x) * easing; var vy:Number = (Ytarget - this.y) * easing; var deltaX:Number = Xtarget - this.x; this.x += vx; this.y += vy; //---------tunggu ikan hampir berhenti bergerak---------- var point:Number = Math.random()*0.6 + 0.7; if(vx < point) { Xtarget = Math.random() * batasKa; Ytarget = Math.random() * batasBa; easing = Math.random() * 0.03 + 0.01; } if(deltaX < 0) { this.scaleX = -1; }else { this.scaleX = 1; } } } }
Nah, yg jadi masalah, jika dijalankan maka gerakan ikan tidak sesuai seperti yang diharapkan. Saat bergerak dari kiri ke kanan, gerakannya bisa bagus, tapi saat dari kanan ke kiri, gerakannya terlalu cepat dan kaku. Coba lihat hasilnya biar lebih jelas..Code:package { import flash.display.*; import flash.events.*; public class FishMove extends MovieClip { private var ikanAr:Array; private var X:Number; private var Y:Number; public function FishMove() { ikanAr = new Array(); newFish(); } private function newFish() { for(var i:uint=0; i<5; i++) { X = Math.random() * stage.stageWidth; Y = Math.random() * stage.stageHeight; var ikan:Fish = new Fish(X, Y); addChild(ikan); ikan.x = Math.random() * 400; ikan.y = Math.random() * 300; ikanAr.push(ikan); } } } }
http://helawan-oye.web.ugm.ac.id/wp-...s/FishMove.swf
Ada yang bisa bantu. Please tolongin ya...![]()



LinkBack URL
About LinkBacks


Reply With Quote

Bookmarks