Monday, 23 January 2017

Membuat Game puzzle dengan waktu dan score AS3

kali ini saya mencoba membuat game puzzle yang sederhana lengkap dengan waktu dan score,, dengan aturan waktu yang dimiliki untuk menyelesaikan game yaitu 10 detik , full score 1000 dengan 2 potongan gambar jika dapat menyelesaikan permainan sebelum waktu nya dengan score 1000 maka pemain akan memenangkan permainan puzzle ini.

Tampilan seperti yang diawah ini :

Puzzle dengan Actionscript 3.0 berbeda dengan Actionscript 2.0 yang saya buat di artikel sebelumnya. untuk di as3 ini kita akan menambahkan kelas untuk drag dan drop object  yaitu DragGame.as, HitTestObject.as , HitTestPoint.as dan  IHitTestMethod.as yang dapat di download pada link di bawah artikel ini.


 ActionScript  yang digunakan seperti di bawah ini:
 stop();
import com.*;

var score:int = 0;
var dragArray:Array = [kuda_mc, sapi_mc];
var matchArray:Array = [kuda_match, sapi_match];
var posArray:Array = [ {x:214, y:92.7}, {x:383.2, y:92.7} ];

var dragGame:DragGame = new DragGame(stage, dragArray, matchArray, posArray);

dragGame.addEventListener(DragGame.MATCH_MADE, onMatch);
dragGame.addEventListener(DragGame.NO_MATCH, onFlub);
dragGame.addEventListener(DragGame.ALL_DONE, onDone);

//Fungsi yang akan jalan jika posisi puzzle sesuai dengan pasangan objeknya
function onMatch(event:Event):void {
    var matchSound:Sound = new MatchSound(); // Objek suara
    matchSound.play(); // Akan memainkan suara jika objek sesuai
    score +=500; // Menambahkan skor 500
    score_txt.text=score.toString(); //Nilai akan tertulis di objek score_txt;
      
}
//Fungsi yang akan jalan jika posisi puzzle tidak sesuai dengan pasangan objeknya
function onFlub(event:Event):void {
    var flubSound:Sound = new FlubSound(); // Objek suara
    flubSound.play(); // Akan memainkan suara jika objek tidak sesuai
  
}
//Fungsi yang akan jalan jika semua puzle telah tersusun sesuai pasangan objeknya masing-masing
function onDone(event:Event):void {
    var applause:Sound = new Applause(); // Objek suara
    applause.play(); // Akan memainkan suara tepuk tangan jika semua objek telah terpasang sesuai
    Remove(); // Menjalankan fungsi remove
    nextFrame(); // Melanjutkan ke frame selanjutanya
}

var myTimer:Timer = new Timer(1000,10); // variabel Batas waktu 10 detik
myTimer.addEventListener(TimerEvent.TIMER, onTimer);
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete);
myTimer.start(); // Memulai perhitungan waktu

function onTimer(e: TimerEvent):void {
    time_txt.text = String(myTimer.repeatCount - myTimer.currentCount);
}
//Fungsi yang akan jalan jika batas waktu telah habis
function onComplete(e: TimerEvent):void{
     Remove();
     gotoAndStop(4);
}

//Fungsi untuk Menghapus movie clip dan timer yang ada di stage ini supaya tidak muncul lagi di
//Frame berikutnya
function Remove():void{

    if (contains (sapi_mc)){
        removeChild(sapi_mc)
    }
    if (contains(kuda_mc)){
        removeChild(kuda_mc)
    }
    myTimer.stop(); //Memberhentikan timer yang sedang berjalan
}



untuk objek puzzle yang akan di drag masukan di array dragArray dan untuk objek yang di  pasangkan dimasukan ke array matchArray, kemudian posArray itu adalah posisi x y dari objek yang dipasangkan, dapat dilihat dari properties pada objek yang di pasangkan.

var dragArray:Array = [kuda_mc, sapi_mc];
var matchArray:Array = [kuda_match, sapi_match];
var posArray:Array = [ {x:214, y:92.7}, {x:383.2, y:92.7} ];

Jika teman-teman ingin mencoba silahkan di download di link bawah ini :
disini

Terimakasih, semoga bermanfaat yak.. :)




No comments: