Selasa, 22 April 2014

Game Tembak-Tembakan Ironman VS Droid (Bagian 2)

III. Mempersiapkan MovieClip Musuh
Setelah selesai membuat movieclip tokoh yang bisa menembak bagian1 sekarang kita akan mempersiapkan Movieclip musuhnya.Caranya :
1. Movieclip droid
Buka file ironman.fla, kemudian buatlah gambar droid seperti di bawah ini (Tanpa Tangan dan boost):






 Kemudian blok semua objek droid lalu klik kanan-->convert to symbol--> pilih opsi Movieclip, lalu buatlah tangan dan boost bergerak seperti tampilan timeline berikut:







2. Movieclip Meledak
Movieclip Meledak digunakan untuk membuat efek ledakan ketika peluru bertabrakan dengan droid, atau ironman bertabrakan dengan droid. berikut tampilan timelinenya :



IV. Membuat SKOR dan HEALTHBAR
Pada bagian bawah stage, tambahkan tulisan berikut :


Pada bagian yang dilingkari adadah jenis dynamic text, yang nantinya akan menjadi perhitungan skor, atur propertiesnya seperti berikut :


Untuk healthbarnya buat seperti ini :



Kemudian convert ke symbol dengan propertis seperti berikut :



Buat Juga movieclip untuk menampilkan tulisan Game Over jika selesai





V. Action Script Untuk Memanggil Musuh

Sisipkan Skrip berikut untuk memanggil musuh,skor, dan healthbar :

// menambahkan background engan nama yang dikenali oleh stage yaitu iron_mc
_root.attachMovie("Background", "background_mc", 0);
// menambahkan iron dengan nama yang dikenali oleh stage yaitu iron_mc
_root.attachMovie("iron","iron_mc",1);
//menambahkan bar untuk nyawa dengan nama yang dikenali oleh stage yaitu health_mc
//di sini lokasi dari healthbar ditentukan dengan x = 380 dan y = 385

_root.attachMovie("HealthBar", "health_mc", 2, {_x:380, _y:385});
//Menyiapkan skor awal = 0;
skor = 0;
//inisialisasi nyawa sebesar 100
var nyawa = 100;
//memberikan timer
var idInterval = setInterval(panggilMusuh, 1000);
_root.onEnterFrame = function() {

     //memberikan status game over
   
  if (nyawa<=0) {
    //  nyawa = 0;
   
      var depth = _root.getNextHighestDepth();
      {
      _root.getInstanceAtDepth(depth).removeMovieClip();
      }
      //Memunculkan tulisan Game Over
        _root.attachMovie("OVER","OVER1",depth,{_x:0,_y:0});
        clearInterval(idInterval);
        _root.onMouseMove = function() {
    // menghilangkan mouse
    Mouse.hide();
    // menggerakkan iron_mc
    end_mc._x += (_xmouse-end_mc._x);
    end_mc._y += (_ymouse-end_mc._y);
};
       
     }
    //mengeset agar ukuran dari health_mc menyesuaikan dengan health
    health_mc._width = (nyawa/100)*150;
   
};
// memberikan event ketika mouse bergerak
_root.onMouseMove = function() {
    // menghilangkan mouse    Mouse.hide();
    // menggerakkan iron_mc
    iron_mc._x += (_xmouse-iron_mc._x);
    iron_mc._y += (_ymouse-iron_mc._y);
};
// memberikan event ketika mouse ditekan
_root.onMouseDown = function() {
    // mendapatkan kedalaman, kedalaman digunakan karena pada 1 depth hanya memiliki 1 objek
    var depth = _root.getNextHighestDepth();
    // menambahkan peluru ke stage
    var peluru = _root.attachMovie("Peluru", "peluru_"+depth, depth, {_x:iron_mc._x, _y:iron_mc._y});
    // memberikan event enterframe pada peluru
    peluru.onEnterFrame = function() {
        // menggerakkan peluru
        this._x += 10;
        // memberikan kondisi jika letaknya melebihi batas
        if (this._x>550) {
            // menghapus peluru (yang melebihi batas)
            removeMovieClip(this);
                       
}
 
     //melakukan perulangan terhadap musuh
        var kedalamanMusuhSekarang = _root.getNextHighestDepth()-1;
       
            for (var i = kedalamanMusuhSekarang; i>kedalamanMusuhSekarang-10; i--) {
            if (_root["musuh_"+i].hitTest(this)) {
                removeMovieClip(_root["musuh_"+i]);
                _root.attachMovie("meledak","meledak1",5,{_x:this._x,_y:this._y});
                 
                    skor +=10;
                    removeMovieClip(this);
               
                   
                }
        }
    };
};
function panggilMusuh() {
 //mendapatkan angka random yaitu 0 dan 1
    var angkaRandom = random(2);
  //mendapatkan kedalaman, kedalaman digunakan karena pada 1 depth hanya memiliki 1 objek
   var depth = _root.getNextHighestDepth();
   if (angkaRandom == 0) {
      //memanggil musuh
     var musuh = _root.attachMovie("Musuh", "musuh_"+depth, depth, {_x:550, _y:random(400)});
     musuh.onEnterFrame = function() {
         //menggerakkan musuh ke kiri sebanyak 3 piksel
           this._x -= 3;
                //memberikan kondisi jika posisi x berada kurang dari 0, maka objek akan dihapus
                if (this._x<0) {
             removeMovieClip(this);
           
         }
         //memberikan kondisi jika musuh bertabrakan dengan iron,
           //maka objek akan hilang dan iron akan berkurang darahnya

            if (this.hitTest(_root.iron_mc)) {
               nyawa -= 10;
               _root.attachMovie("meledak","meledak1",5,{_x:this._x,_y:this._y});
               removeMovieClip(this);
            }
    
        };
    }
    }

Untuk melihat Hasilnya klik link berikut :
Game Ironman