Game
“Galaxyan” adalah game tembak-tembakan luar angkasa classic dimana pemain mengendalikan
sebuah pesawat dan menembak beberapa baris musuh. Adapaun cara pembuatan game
ini adalah sebagai berikut.
1. Buka
aplikasi flash (boleh pakai macromedia flash 8, adobe flash ataupun editor flash lainnya), nah disini
saya memakai adobe flash cs6.
2. Buatlah
sebuah file baru AS3, dengan ukuran stage 480x800 pixel dan 30 fps.
3. Kemudian
buatlah sebuah kotak menutupi stage dengan warna gradasi, yang akan dijadikan
sebagai background permainan. Seleksi kotak tersebut kemudian convert menjadi
MovieClip "bg".
4. Selanjutnya
buatlah gambar pesawat (import bitmap pesawat), kemudian convert menjadi
movieclip plane(Lihat gambar). Jika anda menggunakan bitmap, maka file yang
direkomendasikan untuk digunakan sebagai asset game adalah file bertipe PNG
atau GIF karena mendukung mode transparant. Untuk mengimport bitmap anda dapat
memilih menu FILE > IMPORT > IMPORT TO STAGE.
5. Selanjutnya
buatlah gambar kotak berwarna hijau yang akan kita gunakan sebagai amunisi
pesawat, kemudian convert menjadi movie clip bullet.
6. Untuk
membuat musuh, buatlah sebuah gambar pesawat musuh (dengan ukuran 25 x 25
pixel) kemudian convert menjadi movieclip enemy1. Edit movieclip tersebut
(double click), kemudian tambahkan blank keyframe pada frame 9 dan buatlah
gambar pesawat musuh dengan gerakan yang berbeda. Hal ini dimaksudkan untuk
membuat animasi sederhana pada pesawat musuh. Selanjutnya klik frame 18 dan
tambahkan frame untuk memberikan durasi pada animasi pesawat musuh tersebut.
7. Dengan
cara yang sama, buatlah beberapa variasi musuh. Disini saya membuat 3 variasi
musuh. Jika kalian malas/bingung untuk membuat variasi musuh, kalian dapat
mengcopy paste 1 musuh yang tadi dibuat lalu mengubah warnanya saja.
8. Seleksi
seluruh object yang ada di stage dan hapus dari layar (tekan delete). Hal ini
dimaksudkan agar layar bersih dari semua object dan penataan object nantinya
dilakukan sepenuhnya oleh kode.
9. Agar
movieclip (asset game) yang telah dibuat dapat dipanggil oleh kode, maka
masing-masing movieclip perlu ditambahkan linkage. Untuk melakukannya buka
panel Library (Ctrl+L), kemudian klik kanan movieclip planedan pilih opsi
Properties.
10. Pada
panel properties,centang opsi Export for Actionscript dan pastikan pada kolom
Class terisi dengan nama plane. Klik OK.
11. Dengan
cara yang sama, tambahkan linkage,untuk movieclip bullet, bg, enemy 1, enemy 2
dan enemy 3.
12. Setelah
asset siap, klik frame 1 layer 1. Buka panel Action(F9), dan tuliskan kode
berikut
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;
}
function key_up(e:KeyboardEvent):void{
if
(e.keyCode == 37) is_left = false;
if
(e.keyCode == 39) is_right = false;
if
(e.keyCode == 32) is_space = false;
}
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){
ammo.x
= my_plane.x;
ammo.y
= my_plane.y-20;
ammo_ready
= false;
}
}
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{
enemy
= new enemy3();
}
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();
|
13. Jalankan
aplikasi dengan menekan tombol Ctrl+Enter, maka hasil dari tutorial ini adalah
sebagai berikut:
14. Game
ini memiliki susunan permainan yang cukup sederhana, meliputi pesawat pemain,
amunisi, dan beberapa variasi musuh yang memiliki gerakan sederhana.
15. Cara
bermainnya yaitu dengan cara menekan tombol kiri dan kanan pada keyboard dan
menekan spasi untuk mengeluarkan pelurunya/menembaknya.








Tidak ada komentar:
Posting Komentar