Game Pesawat 3.0

  • Pertama kita import sebuah gambar ke dalam stage dari sprite gratis, cari gambar di lokasi Scion Developer Toolbox\Sprites\Set 1\alienship_color.png.

    alienship
  • Kemudian kita pilih gambar tersebut dan klik kanan dan convert to symbol kemudian pilih movieclip MovieClip. Ganti identifiernya menjadi Musuh.

    convert to symbol
  • Kemudian import lagi, namun kali ini yang diimport adalah gambar batu. Coba liat di Scion Developer Toolbox\Sprites\Set 1\moon_color.png.

    batu
  • Pastikan batu masih  dalam keadaan terseleksi, kemudian klik kanan dan pilih Convert To Symbol, kemudian pilih menjadi Movieclip kembali. Masukkan Batu sebagai identifier.

    batusymbol
  • Kemudian kita gambar sebuah kotak berukuran 150pixel x 25 pixel.

    kotak
  • Kemudian kita convert menjadi movieclip, kotak ini digunakan sebagai health bar atau sebagai pengukur nyawa. Ketik HealthBar sebagai identifiernya. Ingat, titik registrasi (registration) harus berada di kiri.

    healthbar
  • Setelah selesai, kita hapus semua movieclip yang ada di stage.
  • Sekarang kita beralih ke ActionScripting.. :D
  • Klik pada frame 1, karena kita akan meletakkan script kita pada frame, kemudian tekan F9 untuk menampilkan panel Actions – Frame. Tambahkan script yang sudah ada hingga menjadi seperti di bawah ini :
    001//menambahkan background dengan nama yang dikenali oleh stage yaitu background_mc
    002_root.attachMovie("Background", "background_mc", 0);
    003//menambahkan player dengan nama yang dikenali oleh stage yaitu player_mc
    004_root.attachMovie("Player", "player_mc", 1);
    005//menambahkan bar untuk nyawa dengan nama yang dikenali oleh stage yaitu health_mc
    006//di sini lokasi dari healthbar ditentukan dengan x = 380 dan y = 370
    007_root.attachMovie("HealthBar", "health_mc", 2, {_x:380, _y:370});
    008//inisialisasi nyawa sebesar 100
    009var nyawa = 100;
    010//memberikan timer
    011var idInterval = setInterval(panggilMusuh, 1000);
    012//memberikan event enterframe kepada _root agar melakukan tugasnya secara terus menerus
    013_root.onEnterFrame = function() {
    014    //menggerakkan background ke arah _x minus (ke kiri)
    015    background_mc._x -= 3;
    016    //memberikan kondisi jika background habis, maka ia akan mengulangi
    017    if (background_mc._x<-1450) {
    018 &nbsp$3B      //mereset posisi background
    019        background_mc._x = 0;
    020    }
    021    //memberikan status game over
    022    if (nyawa<=0) {
    023        nyawa = 0;
    024        trace("Game Over");
    025    }
    026    //mengeset agar ukuran dari health_mc menyesuaikan dengan health
    027    health_mc._width = (nyawa/100)*150,code class="plain">;
028};
029//memberikan event ketika mouse bergerak
030_root.onMouseMove = function() {
031    //menghilangkan mouse
032    Mouse.hide();
033    //menggerakkan player_mc
034    player_mc._x += (_xmouse-player_mc._x)/5;
035    player_mc._y += (_ymouse-player_mc._y)/5;
036};
037//memberikan event ketika mouse ditekan
038_root.onMouseDown = function() {
039    //mendapatkan kedalaman, kedalaman digunakan karena pada 1 depth hanya memiliki 1 objek
040    var depth = _root.getNextHighestDepth();
041    //menambahkan peluru ke stage
042    var peluru = _root.attachMovie("Peluru", "peluru_"+depth, depth, {_x:player_mc._x, _y:player_mc._y});
043    //memberikan event enterframe pada peluru
044    peluru.onEnterFrame = function() {
045        //menggerakkan peluru
046        this._x += 5;
047        //memberikan kondisi jika letaknya melebihi batas
048        if (this._x>550) {
049            //menghapus peluru (yang melebihi batas)
050            removeMovieClip(this);
051        }
052        //melakukan perulangan terhadap musuh
053        var kedalamanMusuhSekarang = _root.getNextHighestDepth()-1;
054        for (var i = kedalamanMusuhSekarang; i>kedalamanMusuhSekarang-10; i--) {
055            if (_root["musuh_"+i].hitTest(this)) {
056                removeMovieClip(_root["musuh_"+i]);
057                removeMovieClip(this);
058            }
059        }
060    };
061};
062function panggilMusuh() {
063    //mendapatkan angka random yaitu 0 dan 1
064    var angkaRandom = random(2);
065    //mendapatkan kedalaman, kedalaman digunakan karena pada 1 depth hanya memiliki 1 objek
066    var depth = _root.getNextHighestDepth();
067  &nbsp+ if (angkaRandom == 0) {
068        //memanggil musuh
069        var musuh = _root.attachMovie("Musuh", "musuh_"+depth, depth, {_x:550, _y:random(400)});
070        musuh.onEnterFrame = function() {
071            //menggerakkan musuh ke kiri sebanyak 3 piksel
072            this._x -= 3;
073            //memberikan kondisi jika posisi x berada kurang dari 0, maka objek akan dihapus
074            if (this._x<0) {
075                removeMovieClip(this);
076            }
077            //memberikan kondisi jika musuh bertabrakan dengan player,
078            //maka objek akan hilang dan player akan berkurang darahnya
079            if (this.hitTest(_root.player_mc)) {
080                nyawa -= 10;
081                removeMovieClip(this);
082            }
083        };
084    } else {
085        //memanggil musuh
086        var batu = _root.attachMovie("Batu", "musuh_"+depth, depth, {_x:550, _y:random(400)});
087        batu.onEnterFrame = function() {
088            //menggerakkan batu ke kiri sebanyak 3 piksel
089            this._x -= 2;
090            //memberikan kondisi jika posisi x berada kurang dari 0, maka objek akan dihapus
091            if (this._x<0) {
092                removeMovieClip(this);
093            }
094            //memberikan kondisi jika musuh bertabrakan dengan player,
095            //maka objek akan hilang dan player akan berkurang darahnya
096            if (this.hitTest(_root.player_mc)) {
097                nyawa -= 10;
098                removeMovieClip(this);
099            }
100        };
101    }
102}

  • Di situ dijelaskan _root["musuh_"+i], sebenarnya hal tersebut adalah cara lain untuk Eval. misal di stage kita mempunyai sebuah movieclip yang memiliki instance name musuh_1, musuh_2, musuh_3, maka kita bisa mendapatkannya dengan mudah yaitu dengan cara
    1for(var i=1;i<=3;i++){
    2    //mengubah semua objek memiliki property x = 200
    3    _root["musuh_"+i]._x = 200;
    4}
  • Oke, sekarang kita tes movienya ;)
  • Game Pesawat 3.0 Rating: 4.5 Diposkan Oleh: Catatanku