• Tidak ada hasil yang ditemukan

tutorial game pesawat AS3 docx

N/A
N/A
Protected

Academic year: 2018

Membagikan "tutorial game pesawat AS3 docx"

Copied!
6
0
0

Teks penuh

(1)

1. Buatlah sebuah file baru AS3, dengan ukuran stage 480x800 pixel dan 30 fps.

2. Buat kotak untuk menutupi stage untuk background, convert menjadi movieclip beri

nama “

bg

3. Copy objek

plane

,symbol 1 s/d 6 dari projek bahan ke stage.

4. Buat animasi

musuh

menggunakan symbol 1 s/d 6 convert menjadi movieclip beri nama

enemy1,enemy2

dan

enemy3

.

5. Buat persegi panjang dengan ukuran kecil convert menjadi movieclip beri nama

bullet.

6. Hapus semua objek yang dibuat dari stage dengan menekan

delete

.

7. Buka library dengan cara

ctrl+Enter,

klik kanan pada masing-masing movieclip yang

telah dibuat pilih

properties,

kemudian pilih

advanced

beri tanda centang pada

Export

for ActionSript

kemudian

ok.

8. Isikan koding berikut pada frame. (f9)

import flash.events.Event;

import flash.events.KeyboardEvent;

var game:MovieClip; var i:Number = 0; var j:Number = 0;

var screen_w:Number = 800; var screen_h:Number = 480;

var is_left:Boolean = false; var is_right:Boolean = false; var is_space:Boolean = false;

var ammo:MovieClip;

var ammo_ready:Boolean = true; var my_plane:plane;

var game_bg:bg;

function rand(n:Number):Number{

var hasil:Number = Math.floor(Math.random()*n); return hasil;

}

function key_down(e:KeyboardEvent):void{ if (e.keyCode == 37) is_left = true; if (e.keyCode == 39) is_right = true; if (e.keyCode == 32) is_space = true; }

(2)

function move_enemy(e:Event):void{ var ob:Object = e.currentTarget; if (ob.hitTestObject(ammo)) {

ammo_ready = true;

ob.parent.removeChild(ob); ammo.y = -200;

} }

function move_enemy_row(e:Event):void{ var ob:Object = e.currentTarget; if (rand(100) == 34 && ob.x<150) {

ob.x += 10; }

if (rand(100) == 54 && ob.x>25) { ob.x -= 10;

} }

function move_ammo(e:Event):void{ var ob:Object = e.currentTarget; if (!ammo_ready){

ob.y-=10; if (ob.y < 0){

ammo_ready = true; ob.y = -200;

} }

}

function draw_level():void { game = new MovieClip(); addChild(game);

game_bg = new bg(); game.addChild(game_bg); for (i=0; i<4; i++) {

var row:MovieClip = new MovieClip(); row.x = 120;

row.y = (5-i)*30; game.addChild(row);

row.addEventListener(Event.ENTER_FRAME, move_enemy_row);

for (j=0; j<20; j++) { var enemy:MovieClip; if (i==1) {

enemy = new enemy1(); } else if (i==2){

enemy = new enemy2(); }else{

(3)

enemy.x = j*30; row.addChild(enemy);

enemy.addEventListener(Event.ENTER_FRAME, move_enemy);

} }

ammo_ready = true; my_plane = new plane(); my_plane.x = 400;

my_plane.y = screen_h-50;

my_plane.addEventListener(Event.ENTER_FRAME, move_plane); game.addChild(my_plane);

//amo

ammo = new bullet(); ammo.y = -200;

ammo.addEventListener(Event.ENTER_FRAME, move_ammo); game.addChild(ammo);

}

stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down); stage.addEventListener(KeyboardEvent.KEY_UP, key_up); draw_level();

9. Berikut penjelasan dari koding diatas : var game:MovieClip;

var i:Number = 0; var j:Number = 0;

var screen_w:Number = 800; var screen_h:Number = 480; var is_left:Boolean = false; var is_right:Boolean = false; var is_space:Boolean = false; var ammo:MovieClip;

var ammo_ready:Boolean = true; var my_plane:plane;

var game_bg:bg;

Variabel

game

merupakan

"container"

dari seluruh asset. Dengan memasukkan seluruh

asset ke dalam sebuah movieclip, maka kita dengan mudah mengatur, menambahkan

kode dan menghapus movieclip tersebut. Variabel

is_left,Right,Space

adalah trigger

untuk mendeteksi keyboard, sedangkan variable

ammo,game_bg dan my_plane

adalah

variabel yang mengakses

Class linkage

dari

library

function rand(n:Number):Number{

(4)

function draw_level():void { game = new MovieClip(); addChild(game);

game_bg = new bg(); game.addChild(game_bg); ...

my_plane = new plane(); my_plane.x = 400;

my_plane.y = screen_h-50;

my_plane.addEventListener(Event.ENTER_FRAME, move_plane); game.addChild(my_plane);

//amo

ammo = new bullet(); ammo.y = -200;

ammo.addEventListener(Event.ENTER_FRAME, move_ammo); game.addChild(ammo);

fungsi ini merupakan dasar penambahan object ke layar atau disebut sebagai

Display

Object

. Pada awalnya dibuat movieclip kosong yaitu movieclip

game

, kemudian ke

dalam movieclip tersebut ditambahkan asset game seperti "bg" dengan kode

addChild

.

Pada movieclip

my_plane

dan

ammo

diatur posisinya dan diberikan

listener

untuk

bergerak

for (i=0; i<4; i++) {

var row:MovieClip = new MovieClip(); row.x = 120;

row.y = (5-i)*30; game.addChild(row);

row.addEventListener(Event.ENTER_FRAME, move_enemy_row);

for (j=0; j<20; j++) { var enemy:MovieClip; ...

Dengan operasi berulang

for

musuh ditambahkan ke dalam movieclip game dengan

format 4 baris dan 20 kolom. Awalnya dibuat movieclip

row

sebagai kontainer musuh

perbaris. Pada baris 86 ditambahkan

listener move_enemy_row

yang berarti pada

masing-masing baris musuh akan digerakkan secara bersamaan.

for (j=0; j<20; j++) { var enemy:MovieClip; if (i==1) {

enemy = new enemy1(); } else if (i==2){ enemy = new enemy2(); }else{

(5)

enemy.x = j*30; row.addChild(enemy);

enemy.addEventListener(Event.ENTER_FRAME, move_enemy);

}

Pada baris di atas variasi musuh melalui movieclip

enemy1-3

ditambahkan ke dalam

movieclip

row

, selanjutnya masing-masing diatur posisinya dan diberikan

listener

move_enemy

agar dapat mendeteksi peluru

function key_down(e:KeyboardEvent):void{ if (e.keyCode == 37) is_left = true; ...

}

function key_up(e:KeyboardEvent):void{ if (e.keyCode == 37) is_left = false; ...

}

stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down); stage.addEventListener(KeyboardEvent.KEY_UP, key_up);

Fungsi di atas digunakan untuk membaca

input keyboard

yang ditekan pemain selama

permainan.

e.keyCode

akan membaca kode keyboard yang ditekan, sebagai contoh

ketika terbaca kode 37 berarti panah kiri sedang ditekan, sehingga variabel

is_left

menjadi bernilai true

function move_plane(e:Event):void{

if (is_left && my_plane.x > 25) my_plane.x -= 5;

if (is_right && my_plane.x < screen_w - 25) my_plane.x += 5; if (ammo_ready && is_space){

...

Dengan terbacanya

input keyboard

kita dapat menggunakannya sebagai acuan untuk

menggerakan moviclip

my_plane

.

function move_enemy(e:Event):void{ var ob:Object = e.currentTarget; if (ob.hitTestObject(ammo)) {

ammo_ready = true;

ob.parent.removeChild(ob); ammo.y = -200;

(6)

Referensi

Dokumen terkait

Pada tahun pelajaran 2016/2017 yang bersangkutan telah mendaftarkan diri sebagai Calon Peserta Didik Baru di SMP Negeri 2 Toroh, Kab. Grobogan, dan sesuai dengan

[r]

Dari hasil ini dapat diperoleh niosom yang terbentuk dari perbandingan konsentrasi lipid ini kemungkinan masih mampu menjerap vitamin C dengan konsentrasi surfaktan

Fenomena yang merisaukan banyak pihak,pada sekarang ini adalah gaya pacaran para remaja yang menjurus pada hubungan seksual atau seks bebas.Khususnya remaja

yang tinggi, dimana kandungan vitamin C stroberi lebih tinggi dibandingkan dengan

It was concluded that Pd impregnation into Al- MCM-41 catalyst has been successfully carried out without damaging the structure of Al-MCM-41, by impregnating Pd into Al-MCM-41 to

Dalam pembelajaran IPA (Biologi), metode eksperimen merupakan salah satu metode pembelajaran yang berpusat pada siswa untuk melakukan suatu proses percobaan baik

Untuk merencanakan curah hujan rancangan da- ri stasiun hasil rekomendasi metode Kriging diper- gunakan metode Log Pearson Tipe III karena metode tersebut dapat digunakan untuk