Tutorial ini melanjutkan tutorial dari yang sebelumnya, yaitu bikin game pesawat-pesawatan bagian 1. Sekarang kita akan menambahkan beberapa elemen, diantaranya musuh, batu dan health.

Musuh dan Batu sama saja sebenarnya, namun yang kita bedakan cuma hanya gambarnya saja. Sedangkan health merupakan nyawa dari pesawat kita. Kalo pesawat kita terkena musuh atau batu, maka health akan berkurang. Jika health habis, maka kita akan Game Over :wink:

Langsung mulai deh, pastikan file yang kemaren udah dibuka ya ^_^

  • 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

    alienship

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

    convert to symbol

    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

    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

    batusymbol

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

    kotak

    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

    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 :
    //menambahkan background dengan nama yang dikenali oleh stage yaitu background_mc
    _root.attachMovie("Background", "background_mc", 0);
    //menambahkan player dengan nama yang dikenali oleh stage yaitu player_mc
    _root.attachMovie("Player", "player_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 = 370
    _root.attachMovie("HealthBar", "health_mc", 2, {_x:380, _y:370});
    //inisialisasi nyawa sebesar 100
    var nyawa = 100;
    //memberikan timer
    var idInterval = setInterval(panggilMusuh, 1000);
    //memberikan event enterframe kepada _root agar melakukan tugasnya secara terus menerus
    _root.onEnterFrame = function() {
    	//menggerakkan background ke arah _x minus (ke kiri)
    	background_mc._x -= 3;
    	//memberikan kondisi jika background habis, maka ia akan mengulangi
    	if (background_mc._x<-1450) {
    		//mereset posisi background
    		background_mc._x = 0;
    	}
    	//memberikan status game over
    	if (nyawa<=0) {
    		nyawa = 0;
    		trace("Game Over");
    	}
    	//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 player_mc
    	player_mc._x += (_xmouse-player_mc._x)/5;
    	player_mc._y += (_ymouse-player_mc._y)/5;
    };
    //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:player_mc._x, _y:player_mc._y});
    	//memberikan event enterframe pada peluru
    	peluru.onEnterFrame = function() {
    		//menggerakkan peluru
    		this._x += 5;
    		//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]);
    				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 player,
    			//maka objek akan hilang dan player akan berkurang darahnya
    			if (this.hitTest(_root.player_mc)) {
    				nyawa -= 10;
    				removeMovieClip(this);
    			}
    		};
    	} else {
    		//memanggil musuh
    		var batu = _root.attachMovie("Batu", "musuh_"+depth, depth, {_x:550, _y:random(400)});
    		batu.onEnterFrame = function() {
    			//menggerakkan batu ke kiri sebanyak 3 piksel
    			this._x -= 2;
    			//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 player,
    			//maka objek akan hilang dan player akan berkurang darahnya
    			if (this.hitTest(_root.player_mc)) {
    				nyawa -= 10;
    				removeMovieClip(this);
    			}
    		};
    	}
    }
    
  • 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
    for(var i=1;i<=3;i++){
    	//mengubah semua objek memiliki property x = 200
    	_root["musuh_"+i]._x = 200;
    }
    
  • Oke, sekarang kita tes movienya ;)

Download Source File : SINI

VN:F [1.9.8_1114]
Rating: 7.7/10 (40 votes cast)
VN:F [1.9.8_1114]
Rating: +1 (from 3 votes)
Bikin Game Pesawat-pesawatan [Bagian 2], 7.7 out of 10 based on 40 ratings

Related posts:

  1. Bikin Game Pesawat-pesawatan [Bagian 1]
  2. Membuat Game Tangkap Telur
  3. Menukar kedalaman dengan swapDepths
Categories: ActionScript2.0, Game

Komentar

Silakan tulis komentar Anda.

Powered by Facebook Comments

Slice Effect - Fruit

Halo teman-teman Flash Indonesia, saya akan berbagi tentang snippet code [...]

Membuat Aplikasi "Pa

Pada tutorial pertama anda sudah membuat toolbox sederhana untuk menggambar. [...]

Membuat Aplikasi "Pa

Pada tutorial Menggambar bentuk dengan Action Script 3.0, anda sudah [...]

Mencetak Dokumen Fla

Selain memainkan movie, flash juga mempunyai fungsi untuk mencetak (print) [...]

Menggambar Bentuk de

Selain menggunakan toolbox, Action script bisa juga digunakan untuk menggambar [...]

Membuat Health Bar (

Oke, kali ini saya akan menjelaskan tutorial mengenai pembuatan health [...]

Membuat Highscore On

Agar dapat menyimpan highscore secara online, maka yang harus kita [...]

Belajar Augmented Re

Bagi yang belum pernah tau Augmented Reality bisa dilihat di [...]

Bikin Game Side Scro

Ini lanjutan dari sebelumnya di sini Sekarang kita tambahkan sensor [...]

Bikin Game Side Scro

Kalian tau kan game Super Mario ? Nah sekarang kita [...]

Sponsors

  • Flash Developer Indonesia
  • Songoo
  • Flashindonesia Forum
  • Sleipnir Studio