Mengenal ActionScript 3.0 [basic] part 2


Baik, sekarang kita akan mencoba untuk menerapkan hasil dari sebelumnya disertai dengan beberapa tambahan. Project kita kali ini adalah membuat game pong. Game ini adalah game seperti pingpong. Kita akan membuat agar 2 user dapat bermain bersama dalam satu komputer.

Tombol player 1 : A S W D

Tombol player 2 : Kiri Bawah Atas Kanan

Meletakkan Papan Pemantul

Pertama, kita buat sebuah kotak berukuran 100 x 15, jadikan movieclip dengan nama class Papan, dan tentu saja kita memilih base class-nya yaitu MovieClip.🙂, caranya begini nih.

Buat sebuah gambar kotak 100 x 15 (panjang 100 dan tinggi 15) :

papan pemantul

papan pemantul

Kemudian ubah menjadi MovieClip dengan cara mengklik kanan gambar tadi, kemudian ketikkan seperti yang ada di bawah ini : (di situ ada textbox Class, hal ini digunakan untuk pemanggilan seperti halnya attachMovie di ActionScript 2)

Convert to Symbol

Convert to Symbol

Setelah itu kita buat bola berukuran 15 x 15 dan jadikan movieclip dengan nama class Bola. Lakukan seperti papan tadi😛

bola pantul

bola pantul

Sekarang kita beralih untuk membuat pergerakan papan. Klik pada frame 1 layer 1 kemudian tekan F9, ketikkan script berikut :

var bola = new Bola();
var papan1 = new Papan();
var papan2 = new Papan();

bola.x = stage.stageWidth/2;
bola.y = stage.stageHeight/2;
papan1.x = stage.stageWidth/2;
papan1.y = 50;
papan2.x = stage.stageWidth/2;
papan2.y = 350;

stage.addChild(bola);
stage.addChild(papan1);
stage.addChild(papan2);

Maka hasilnya akan seperti berikut :

peletakkan

peletakkan

Menggerakkan Papan Pemantul

Sekarang kita akan mencoba untuk menggerakkan papan untuk player 1 : A untuk ke kiri, D untuk ke kanan, sedang untuk player 2 : <- untuk ke kiri, -> untuk ke kanan. Masih pada frame 1 layer 1, tambahkan script berikut setelah script tadi :

stage.addEventListener(KeyboardEvent.KEY_DOWN, gerakkanPapan);
function gerakkanPapan(ev:KeyboardEvent){
	//angka 1
	if(ev.keyCode == 65){
		papan1.x -= 10;
	}
	if(ev.keyCode == 68){
		papan1.x += 10;
	}
	if(ev.keyCode == Keyboard.LEFT){
		papan2.x -= 10;
	}
	if(ev.keyCode == Keyboard.RIGHT){
		papan2.x += 10;
	}
}

Keterangan : untuk player satu karena menggunakan huruf A dan D agar dapat berjalan wajar, kita tidak dapat melakukan tes pada saat berjalan di Flash IDE kita, jadi kita harus meng-klik file swf kita.😉

Menggerakkan Bola Pantul

Oke, sekarang kita akan mencoba untuk menggerakkan bola pantul, bola pantul akan memantul terus hingga melebihi atau lolos dari papan pantul kita.🙂

Berikut scriptnya, masih tetep di frame 1 layer 1 :

stage.addEventListener(Event.ENTER_FRAME, gerakkanBola);
var xspeed = Math.random()*5-2.5, yspeed = Math.random()*5-2.5;
function gerakkanBola(ev:Event) {
	bola.x += xspeed;
	bola.y += yspeed;
	if(bola.x &lt;= 0 || bola.x &gt;= 550){
		xspeed *= -1;
	}
	if(bola.y &lt;= 0 || bola.y &gt;= 400){
		stage.removeEventListener(Event.ENTER_FRAME, gerakkanBola);
	}
	if(bola.hitTestObject(papan1)){
		yspeed *= -1;
	}
	if(bola.hitTestObject(papan2)){
		yspeed *= -1;
	}
}

Maksud dari Math.random()*5-2.5 adalah menghasilkan angka random dari -2.5 hingga 2.5. Lalu jika posisi y dari bola lebih kecil dari 0 atau lebih besar dari 400, maka animasi bola akan dihentikan yaitu dengan memanggil fungsiremoveEventListener.

Hasil jadi kita kali ini adalah :

hasil-jadi

hasil-jadi

18 thoughts on “Mengenal ActionScript 3.0 [basic] part 2

  1. masih gak mudeng brader…
    itu bikin 4 layer atau gimana!?
    layer 1 papan1
    layer 2 papan 2
    layer 3 bola
    layer 4 action..
    gitu bukan?
    trus scriptnya di koding dimana aja?
    gagal mulu nie..
    mohon pencerahan..

    • Sorry bro.. udah gw perjelas (update), semoga jadi lebih jelas..
      kalo layer, kita nggak perlu bikin banyak2, satu aja udah cukup. sebenarnya flash bisa kok kalo misal 1000 movieclip dalam satu layer.😉
      terus codingnya juga gitu, cuma di frame 1 layer 1, jadi gak makan tempat deh😛
      jadi intinya satu frame bisa diisi movieclip dan actionscript..😉

  2. kalo pake flashDevelop + flex3 gimana ya? kok gak ada fitur untuk membuat kotak ?
    Ato tutorial ini hanya untuk flash CS* ?

  3. saya pengen belajar AS3, kata master saya “ga usah cape2 hafalin, yg penting ngerti, kan bisa copy paste”. Tapi setelah saya coba2 copy paste, googling, gabung sana sini, ternyata hasilnya ga sesuai yg diharapkan. Yg mau saya tanyakan adalah, sebenernya untuk belajar pemrograman spt ini, saya hrs mulai darimana dulu ya, dari html, atau yg apa gitu ? soalnya byk istilah2 yg blm saya mengerti. Terima kasih ya

  4. permisi. mas/om minta contoh2 ato tutorial as3nya yg full coding dun. jadi bisa diterapin di flashdevelop. ya intinya beajar dengaN free lewat open source.

  5. mas ko ga jalan ya? apa ada yng salah?
    semua skrip yang ada di sini saya ketik dalam satu frame dari atas ke bawah..
    tapi al hasil ga mau jalan error di baris fungsi if pada kode “menggerakan bola pantul”
    kalo di sini sih di line 06 sama 09…
    mas kalo ada mentahanya di uplod ya…
    mau di bandingin & belajar langsung…
    takut ada yng kelewat…
    makasih sebelumnya

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s