Jumat, 25 November 2011

Tutorial Game Flash

Mungkin anda sudah tidak asing lagi mendengar dengan yang namanya game,tetapi apakah anda pernah berfikir untuk membuat game yang sederhana seperti game-game yang lainnya? kemungkinan kalau dilihat dari segi namanya membuat game itu sangatlah mudah,tetapi dalam kenyataannya membuat game itu sulit sekali apabila kita kurang keterampilan dan kreatif,maka dari itu kebanyakan orang yang membuat game karena dia merupakan orang-orang yang trampil dan kreatif . Apakah anda juga ingin disebut dengan orang yang kreatif? mulai dari sekaranglah anda harus berfikir untuk bisa menjadi orang yang kreatif,walaupun dalam tahap pemula. Maka dari itu,disini saya akan berbagi ilmu kepada anda semua,bagaimana membuat game yang sederhana tetapi menarik. Disini anda dapat mendownloadnya secara gratis alias tidak dipungut biaya.

         
 Untuk mendownload tutorial gamenya klik tautan dibawah ini..!!

Sebagai contoh game sederhana anda dapat mendownload disini.


Membuat game matematika

Dalam tutorial ini kita akan membuat sebuah game aritmatika sederhana menggunakan flash. Anda dapat menggunakan Macromedia Flash 8 atau Adobe Flash CS 3 dalam pembuatannya.
Langkah 1: Buka sebuah file baru dengan ukuran default (550 x 440) , ubah warna background menjadi hijau. Buatlah sebuah tulisan judul “Online Test”. Selanjutnya buatlah sebuah kotak berwarna merah dengan garis tepi putih. Perhatikan Gambar

Langkah 2 : Tambahkan di atas kotak merak tersebut dynamic text dan beri nama variabelnya “angka_1″, Copy dynamic text tersebut dan pastekan di sampingnya, ubah nama variablenya menjadi “angka_2″, sisipkan ditengah-tengahnya tanda tambah menggunakan static teks dan tanda sama dengan setelah teks angka_2. Kemudian buat lagi input teks dengan nama variabelnya “jawab”, beri juga nama instance namenya dengan nama “answerBox” dan pilih “show border around text”. Perhatikan gambar

Langkah 3 : buat 2 buah tombol di bawah kotak merah masing-masing dengan nama tombol random dan tombol check.

Langkah 4 : Buat sebuah movie clip dari static teks, misalnya “Correct Answer”, beri nama instancenya “true_answer”. Klik 2 kali movie clip tersebut untuk masuk ke area movie clip “true_answer”, Klik frame 1, tahan dan geser ke frame 2, sehingga tidak ada objek di frame 1, lalu klik frame 10, klik kanan dan pilih insert keyframe. kembali ke frame 1 tekan tombol F9 dan masukkan kode berikut:
stop();


Langkah 5 : Ulangi langkah 4 untuk jawaban yang salah, namun tulisannya adalah “Wrong Answer, try again”. beri nama instancenya “wrong_answer”.

Langkah 6 : Kembali ke stage utama, tambahkan sebuah layer action, klik frame 1 layer action dan masukkan action script berikut:
problem();
function problem() {
var _loc1 = 2+random(8);
var _loc2 = 2+random(8);
angka_1 = Math.floor(_loc1);
angka_2 = Math.floor(_loc2);
jawab = “”;
Selection.setFocus(_root.answerBox);
stage.focus = _root.answerBox;
_root.answerBox.setSelection(0, 1);
}
function check_answer() {
if (angka_1+angka_2 == jawab) {
true_answer.play();
problem();
} else {
wrong_answer.play();
Selection.setFocus(_root.answerBox);
}
}

Langkah 7 : Klik tombol random dan masukkan action script berikut:
on (press) {
problem();
}
Langkah 8: Klik tombol check dan masukkan action script berikut:

on (press) {
check_answer();
}

Untuk melihat hasilnya klik link berikut ini http://janggeng.blogspot.com/2009/06/membuat-game-flash-matematika-sederhana.html

Tutorial Membuat Game Flash: City Rescue

Dalam kesempatan ini saya akan menerangkan tentang cara membuat games sederhana menggunakan Aplikasi Adobe Flash Profesional CS3. Games yang saya buat adalah berjudul City Rescue dalam game ini anda cukup menggunakan tombol arah kiri dan kanan untuk menggerakan Mobil untuk menyelamatkan sedikitnya 26 orang yang akan di jatuhkan dari atas balon terbang yang melaju di atas mobil player, tapi perlu hati hati juga karna balon tersebut menembakan bom yang harus kita hindari. Oke kita mulai tutorialnya oh ya sebelum itu alangkah baiknya anda download dulu Sourcenya di akhir tulisan ini agar lebih mudah memahaminya. Pertama tama buka Adobe Flash yang kalian punya direkomendasikan menggunakan Adobe flash CS3 ke atas, Buat Layer kerja baru dengan Action Script 2.0
579 image1 Tutorial Membuat Game Flash: City Rescue
Pada proses awal ini kita seting ukuran games serta kecepatan Fps nya. Untuk ukurannya kita seting 700×400 pixel serta 20fps
247 image2 Tutorial Membuat Game Flash: City Rescue
Selanjutnya Kita buat MOBIL playernya, Pesawat Musuh, BOSSnya serta orang atau sandera yang akan di jatuhkan, seperti gambar yang saya buat ini:
612 image3 Tutorial Membuat Game Flash: City Rescue
Selanjutnya Buat instan Name dari tiap tiap karakter yang anda buat saya beri nama player pada Mobil, lalu Musuh pada balon musuhnya dan boss pada Boss mode nya Buat dahulu Layer , dan label lihat pada gambar
849 image4 Tutorial Membuat Game Flash: City Rescue
Beri nama Label Pada frame: lihat contoh di atas “intro, menu, stage1, boss, gameover, menang” sekarang mari kita mulai tahap yang paling rumit yaitu Script. Klick Frame 1 pada frame label masukan script berikut 
1stop();
2 
3stage1_msc = new Sound();
4 
5stage1_msc.attachSound("stage1_msc");
6 
7ledakan = new Sound();
8 
9ledakan.attachSound("ledakan");
10 
11ancur = new Sound();
12 
13ancur.attachSound("ancur");
14 
15menu = new Sound();
16 
17menu.attachSound("menu");
18 
19aaa = new Sound();
20 
21aaa.attachSound("aaa");
22 
23bomjatuh = new Sound();
24 
25bomjatuh.attachSound("bomjatuh");
26 
27oe = new Sound();
28 
29oe.attachSound("oe");
30 
31poik = new Sound();
32 
33poik.attachSound("poik");
34 
35laser = new Sound();
36 
37laser.attachSound("laser");
38 
39boss_ost = new Sound();
40 
41boss_ost.attachSound("boss_ost");
42 
43stopAllSounds();

Penjelasan Script : stop(); untuk menghentikan movie agar bermain di frame 1 nah untuk yang di bawahnya untuk menginisial suara yang ada pada library dan telah di beri linkage.
561 image5 Tutorial Membuat Game Flash: City Rescue
Lalu selanjutnya Kita simpan karakter pada tempatnya dan pada label stage 1


Membuat Layout Website 3 Kolom Dengan CSS

Dalam membuat desain website kita harus menentukan terlebih dahulu bagaimana konsep tata letak tampilan halaman website atau yang lazim disebut layout. Pada tutorial ini saya akan memberikan tips untuk membuat layout website 3 kolom dengan css, untuk lebih jelasnya sebelum saya bahas lebih lanjut berikut ini saya jelasin sekilas mengenai jenis-jenis layout website yang sering digunakan.
1.       Layout website 1 kolom

2.       Layout yang dilengkapi dengan kolom serta content dan sidebar (2 kolom)

3.       Layout website dengan 1 kolom serta 2 sidebar (3 kolom)

Nah, pada tutorial ini saya akan bahas cara pembuatan layout website 3 kolom yang nantinya kolom content berada di tengah-tengah serta terdapat 2 sidebar disisi kiri dan kanan halaman. Mari langsung dicoba, namun sebelum nya download terlebih dahulu file-file yang diperlukan seperti background dan logo website yang telah saya siapkan disini.

Langkah 1

Tulislah skrip css berikut dan simpan dengan nama style.css
*{margin:0 auto; padding:0}
 
body{background:#c0c0c0;
    font-family:verdana; font-size:10px; color:#4c4e55;
    }
#container{width:1007px; height:1369px;
    background:url('bg.jpg') no-repeat;
    }
#header{height: 150px;
    border: 1px solid #009900;
    }
#sidebar_kiri{float:left; width:250px; height:1000px; margin:3px 0;
    padding:3px; border:1px solid #009900;
    }
#center{float:left; width: 577px; height:1000px; margin:3px; padding:3px;
    border:1px solid #009900;
    }
#sidebar_kanan{float:left; width:150px; height:1000px; margin:3px 0;
    padding: 3px; border: 1px solid #009900;
    }
#footer{height:201px; border:1px solid #009900;
    clear: both;
    }

Langkah 2

Selanjutnya buat juga kode html berikut dan simpanlah dengan nama index.html satu folder dengan skrip css. Dalam kode html ini kita masukkan tag yang berfungsi untuk memanggil pengaturan layout website yang telah dibuat di halaman style.css
<html>
<head>
<title>Layout Website 3 Kolom</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container">
    <div id="header">
    </div>
    <div id="sidebar_kiri">
    </div>
    <div id="center">
    </div>
    <div id="sidebar_kanan">
    </div>
    <div id="footer">
    </div>
</div>
</body>
</html>

Selanjutnya lihat hasilnya dengan membuka file dokumen html yang telah dibuat di browser komputer anda. Jika tidak terdapat kesalahan penulisa kode, akan tampil seperti gambar berikut:
Tampilan layout diatas adalah layout dasar yang dapat dikembangkan lagi dengan menambahkan isi atau konten-konten yang diinginkan. Namun, jangan lupa untuk menghilangkan garis border nya agar terlihat lebih rapi J pada tampilan diatas memang sengaja saya tampilkan border berwarna hijau agar lebih mudah untuk melihat hasil kode yang dibuat. Untuk menghilangkan border tersebut silahkan anda hapus kode border: 1px solid #009900; disetiap ID Selector #header, #sidebar_kiri, #center, #sidebar_kanan dan #footer.
Pengembangan
Berikut ini saya tambahkan contoh cara mengembangkan tampilan header dan navigasi menu pada tampilan website yang dibuat. Sisipkan kode css berikut pada skrip css yang telah dibuat sebelumnya, kode ini berisi pengaturan tampilan logo web dan navigasi menu.

#logo{width:300px; float:left}
.gmbr_logo{margin:45px 0px 0px 50px;}
#menu{width:700px; float:right;}
#menu ul{margin:60px; float:right; list-style:none;}
#menu li{float:left;}
#menu a{display:block; padding:7px 12px; text-decoration:none; font-weight:bold;
    font-family:arial; font-size:14px; color:#313132;
    }
#menu a:hover {background:#FFCC00; text-decoration:underline;}

Berikut penulisan kode css yang lengkap setelah ditambahkan kode diatas.
*{margin:0 auto; padding:0}
body{background:#c0c0c0;
    font-family:verdana; font-size:10px; color:#4c4e55;
    }
#container{width:1007px; height:1369px;
    background:url('bg.jpg') no-repeat; overflow:hidden;
    }
#header{height: 150px;
    border: 1px solid #009900;
    }
#logo{width:300px; float:left}
.gmbr_logo{margin:45px 0px 0px 50px;}
 
#menu{width:700px; float:right;}
 
#menu ul{margin:60px; float:right; list-style:none;}
 
#menu li{float:left;}
 
#menu a{display:block; padding:7px 12px; text-decoration:none; font-weight:bold;
    font-family:arial; font-size:14px; color:#313132;
    }
#menu a:hover {background:#FFCC00; text-decoration:underline;}
 
#sidebar_kiri{float:left; width:250px; height:1000px; margin:3px 0;
    padding:3px; border:1px solid #009900;
    }
#center{float:left; width: 577px; height:1000px; margin:3px; padding:3px;
    border:1px solid #009900;
    }
#sidebar_kanan{float:left; width:150px; height:1000px; margin:3px 0;
    padding: 3px; border: 1px solid #009900;
    }
#footer{height:201px; border:1px solid #009900;
    clear: both;
    }
 
Lengkapi juga kode html yang telah dibuat dengan kode berikut dibawah tag <div id=”header”>.
<div id="logo">
          <p><img class="gmbr_logo" src="logo.png"></p>
        </div>
             <div id="menu">
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Service</a></li>
                <li><a href="#">Support</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
            </div>
 
Berikut kode lengkap pada dokumen html yang dibuat.
<html>
<head>
<title>Layout Web 3 Kolom</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container">
    <div id="header">
        <div id="logo">
          <p><img class="gmbr_logo" src="logo.png"></p>
        </div>
        <div id="menu">
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Service</a></li>
                <li><a href="#">Support</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </div>
    </div>
    <div id="sidebar_kiri">
    Sidebar Kiri
    </div>
    <div id="center">
    Konten
    </div>
    <div id="sidebar_kanan">
    Sidebar Kanan
    </div>
    <div id="footer">
    </div>
</div>
</body>
</html>
 
 
Catatan :
Pada kode diatas saya mengambil contoh lebar (width) 10007px dan tinggi (height) 1369px. Karena akan dibuat menjadi  3 kolom, berarti lebar 1007 px dibagi menjadi 3, namun tidak dibuat dengan ukuran yang tepat dikarenakan sisa nya digunanakan untuk membarikan jarak antar kolom.

Game Flash Bola 12 Pas

Pada kesempatan ini game yang akan dibuat adalah latihan eksekusi penalti dari titik putih atau terkadang diistilahkan tendangan “12 pas” yang juga menjadi judul dari game ini.
        Bersiap untuk menendang                                                  Bola out 

  GooooaaaallllllllllLLLLL.....!!                                             Bola Diblok Oleh Kiper

Disini saya membuat game menggunakan Flash yang umum digunakan untuk membuat game di web, dengan bahasa pemrograman ActionScript 2.0 yang lebih ramah kepada animator non-programmer yang kebanyakan berangkat dari basic desain (seperti saya ;P), jika sudah memahami dasar-dasarnya mari lanjut saja. Pada library, sediakan 3 buah movieclip dengan memiliki identifier “kiperID”, “bolaID”, dan “pemainID” yang akan diattach ke tengah stage saat flash movie dijalankan.
Pada stage, siapkan background seperti pada gambar di bawah ini, perhatikan koordinat x dan y harus tepat karena menjadi acuan untuk berjalannya permainan. Siapkan pula movieclip dengan instance name “keterangan”.
Pada frame, sisipkan script berikut ini:
001      // Eksekusi 12 Pas
002    // A game by: F4154LMAN
003   
004    mulai();
005   
006    function mulai()
007    {
008        var tenaga:Number = new Number();
009        var posisiPemain:Number = new Number();
010        var PosisiGerakKiper:Number = new Number();
011        var PosisiBolaSemula:Number = new Number();
012        var listenerKey:Object = new Object();
013   
014        attachSetScaleDanXY("kiperID", "kiper", 70, 330, 160, this.getNextHighestDepth());
015        attachSetScaleDanXY("bolaID", "bola", 100, 150, 315, this.getNextHighestDepth());
016        attachSetScaleDanXY("pemainID", "pemain", 100, 85, 300, this.getNextHighestDepth());
017   
018        bola.gotoAndStop("frameBiasa");
019        keterangan.gotoAndStop("frameAwal");
020   
021        keterangan.onRelease = function()
022        {
023            removeMovieClip("pemain");
024            removeMovieClip("bola");
025            removeMovieClip("kiper");
026            mulai();
027        }
028   
029        listenerKey.onKeyDown = function()
030        {
031                posisiPemain = pemain._x;
032   
033                if(((kiper._x - 200) - posisiPemain) > 50)
034                {
035                    posisiGerakKiper = -5;
036                }
037                else if(((kiper._x - 200) - posisiPemain) < -50)
038                {
039                    posisiGerakKiper = 5;
040                }
041                else
042                {
043                    posisiGerakKiper = 0;
044                }
045   
046                kiper._x += posisiGerakKiper;
047   
048                if(Key.isDown(Key.LEFT))
049                {
050                    pemain._x -= 10;
051                }
052   
053                if(Key.isDown(Key.RIGHT))
054                {
055                    pemain._x += 10;
056                }
057   
058                if(pemain._x < 50 || pemain._x > 200)
059                {
060                    pemain._x = posisiPemain;
061                }
062   
063                if(Key.isDown(Key.SPACE))
064                {
065                    tenaga = (Math.floor(Math.random() * (9)) + 6) * 10;
066                    bolaDitendang();
067                }
068        }
069        Key.addListener(listenerKey);
070   
071        function attachSetScaleDanXY(id:String, namaBaru:String, skala:Number, xx:Number, yy:Number, depth:Number)
072        {
073            attachMovie(id, namaBaru, depth);
074            setProperty(namaBaru, _xscale, skala)
075            setProperty(namaBaru, _yscale, skala)
076            setProperty(namaBaru, _x, xx);
077            setProperty(namaBaru, _y, yy);
078        }
079   
080        function bolaDitendang()
081        {
082            delete listenerKey.onKeyDown;
083            posisiBolaSemula = bola._y;
084   
085            bola.onEnterFrame = function()
086            {
087                if(kiper._x - bola._x > 10)
088                {
089                    posisiGerakKiper = -20;
090                }
091                else if(kiper._x - bola._x < -10)
092                {
093                    posisiGerakKiper = 20;
094                }
095                else
096                {
097                    posisiGerakKiper = 0;
098                }
099   
100                kiper._x += posisiGerakKiper;
101                kiper._rotation += posisiGerakKiper / 2;
102   
103                if(tenaga > 90)
104                {
105                    kiper._y -= 1;
106                }
107   
108                bola._y -= tenaga / 10;
109                bola._x += (tenaga / 10) - ((posisiPemain - 150) / 10);
110   
111                setProperty(bola, _xscale, getProperty(bola, _y) / posisiBolaSemula * 100);
112                setProperty(bola, _yscale, getProperty(bola, _y) / posisiBolaSemula * 100);
113   
114                if((posisiBolaSemula - bola._y) > (tenaga * 2))
115                {
116                    delete bola.onEnterFrame;
117                    if(bola.hitTest(kiper.tangkapan))
118                    {
119                        keterangan.gotoAndStop("frameBlocked");
120                        bola.gotoAndStop("frameKena");
121                    }
122                    else if((bola._x > 200) && (bola._x < 500) && (bola._y > 60) && (bola._y < 200))
123                    {
124                        keterangan.gotoAndStop("frameGol");
125                    }
126                    else
127                    {
128                        keterangan.gotoAndStop("frameOut");
129                    }
130                }
131            }
132        }
133    }

 Untuk lebih jelasnya silahkan download game diatas klik disini



Kamis, 24 November 2011

Cara Buat Game Flash

1.Persiapan
Buat 3 buah layer untuk memudahkan pembuatan. layer 1 untuk diberikan label frame, layer 2 untuk diisi actionscript, layer 3 tempat kita nanti menyimpan movieclip dan sebagainya. Ingat baik-baik untuk menyimpan pada tempatnya (layer label untuk nyimpen label, klo nulis ActionScript di layer eksyenskrip, dan selain itu semua simpan aja di layer symbols). Sebenernya boleh aja sih disatuin semua di 1 layer… tapi fren, percayalah ini juga demi kerapihan program kita… untuk amannya, layer selain symbols dilock/hide aja. Sementara itu untuk panjang framenya adalah bebas tapi untuk gampangnya kita buat saja jadi 3 yaitu frame awal untuk tampilan menu, frame berikutnya untuk permainan, dan berikutnya lagi untuk tampilan game over. Jangan lupa untuk tiap frame berikan label ‘menu’, ’permainan’, ‘gameover’ nanti pindah framenya tinggal gotoAndStop(“nama label”); Lihat gambar berikut…
Pada game ini untuk memudahkan dalam pengertian maka setiap Saya menulis actionscript di depan tiap objek Saya berikan id untuk mengenali objek apakah itu…
objek dengan awalan mc_ adalah movieclip
objek dengan awalan btn_ adalah tombol (button)
objek dengan awalan so_ adalah SharedObject
 2.Bagian Menu
Untuk tampilan menu awalnya buatlah judul game yang besar-besar…!!! buat juga tombol main dengan nama instance (lihat properties button) ‘btn_main’ (ini tombol untuk melanjutkan permainan) dan tombol keluar dengan nama instance ‘btn_keluar’ (ini tombol untuk keluar). Kemudian buat juga sebuah dynamic text dengan nama var ‘topsekorer’ (ini disediakan untuk menampilkan top scorer). Adapun untuk bisa menyimpan dan membaca data skor pada flash di komputer kita, kita perlu menggunakan fasilitas SharedObject. misalkan nanti kita simpan 2 buah data di SO tersebut yaitu namaSO.data.nama untuk menyimpan nama dan namaSO.data.skor untuk menyimpan skor. Setelah semua itu selesai berikan actionscript di frame 1 sebagai berikut:
stop(); //supaya ngga jalan kemana2
var so_skor:SharedObject = SharedObject.getLocal("catatanSkor","/"); 
//untuk baca dan simpan data skor
var jmlTopSkorer:Number = 5; //jumlah top skorer yg ditampilkan
text_topSkorer.text = "" ; //tampilan skor di dynamic text

/* ****************************************
 pada SharedObject so_skor ada beberapa data yang disimpan yaitu:
 - topSkor dari 1 sampai 6 (so_skor.data.topSkor1, so_skor.data.topSkor2,
 so_skor.data.topSkor3,...dst)
 - namaTopSkorer dari 1 sampai 6 (sama seperti diatas, 
sebenarnya yg dipakai cuman 5 skor,
 yang ke-6 untuk temp aja :)
 - input nama terakhir (supaya otomatis terisi ketika game over)
  **************************************** */

if( so_skor.data.topSkor1 == undefined) //fungsi ini cuma dipakai 
pertama kali untuk reset skor
{
 for(i=1; i<=jmlTopSkorer; i++){
  so_skor.data["topSkor"+i]=1500/i;
  so_skor.data["namaTopSkorer"+i]="Faisalman";
 }
}

 /**************************************************************
 // untuk menampilkan top skor di dynamic text yg ada di stage :
 ***************************************************************/

for (i = 1; i <= jmlTopSkorer; i++) {
 text_topSkorer.text = text_topSkorer.text + "\\n" + eval
("so_skor.data.namaTopSkorer"+i) + " " + eval("so_skor.data.topSkor"+i);
}

 /* ****************************************
  // perintah ketika tombol main ditekan :
  **************************************** */

btn_main.onPress = function(){
 gotoAndStop("permainan");
 } 

 /* ****************************************
  //perintah ketika tombol keluar ditekan :
  **************************************** */

btn_keluar.onPress = function(){
 fscommand("quit",true);
 }
/* **************************************************

 //kalau mau ada tombol utk reset skor :

 btn_reset.onPress = function(){
  so_skor.clear();
 }  

****************************************************** */
 3.Bagian Permainan
Sesudah selesai membuat menu awal selanjutnya kita buat bagian permainan, seperti yang kita tahu inilah sebenarnya inti dari program yang sedang kita buat. Baiklah langsung saja siapkan tokoh-tokohnya: Tux si pinguin, makanan favoritnya (tulang ikan), dan bom. Anda bisa buat sendiri atau pakai yang sudah Saya buat saja (hasil tracing) seperti di bawah ini…
Alasan mengapa gambarnya Saya jadikan vektor adalah supaya pada saat bermain nanti eksekusinya jauh lebih ringan dibanding jika memakai begitu saja gambar bitmap hasil import (tidak percaya silahkan coba sendiri bedanya). lihat saja hasil .swf-nya saudara-saudara… game ini besarnya hanya 8 kilobyte jika dimainkan langsung dengan flash (lihat di bawah). By the way anyway busway (halah), jangan lupa masing-masing objek itu dijadikan movieclip (klik kanan objek > convert to symbol … atau klik objek menu>modify>convert to symbol) beri nama apapunlah misalkan pinguin, ikan, atau bom. kemudian beri nama instance (lihat properties movieclip) ‘mc_tux’ pada si pinguin, ‘mc_ikan_1’ pada si tulang ikan, dan ‘mc_bom_1’ pada bom. Kemudian bagian terpenting dari yang penting di game ini adalah rangkaian actionscript berikut (ingat untuk menyimpannya di layer eksyenskrip) jreng jreng jreng!!! artikel ini belum selesai, bersambung ah… biar pada penasaran. insyaAllah nanti diterusin lagi nulisnya kalau ada waktu senggang, akhir-akhir ini masih sangat sibuk 

skrip untuk disimpan di frame ‘permainan’:
stop(); //supaya ngga jalan kemana2
var vLevel:Number = 0; //current level dari game (pertama kali level 0)
var vSkor:Number = 0; //jumlah skor
var vNyawa:Number = 5; //jumlah nyawa dari pinguin
var vJumlahLevel:Number = 8; //jumlah level dari game ini
var vSkorIkan:Number = 10; //skor kalau dapet ikan
var vSkorBom:Number = -25; //skor kalau kena bom
var vSkorMinUtkNaikStage:Number = 250; //setiap dapat 250 poin, 
naik ke level berikutnya

 /* *******************************************************************
  // fungsi untuk menggerakkan pinguin dengan keyboard :
  // (onEnterFrame menjadikan fungsi ini dipanggil sesuai jumlah fps)
  ******************************************************************* */

mc_tux.onEnterFrame = function() {
 vtPosisiX = this._x;
 vtPosisiY = this._y;

 if (Key.isDown(Key.UP)){
  this._y -= 15;
 }
 if (Key.isDown(Key.DOWN)){
  this._y += 15;
 }
 if (Key.isDown(Key.LEFT)){
  this._x -= 15;
 }
 if (Key.isDown(Key.RIGHT)){
  this._x += 15;
 }
 if (this._x<0 || this._x > (Stage.width - this._width)){
  this._x = vtPosisiX;
 }
 if (this._y<0 || this._y > (Stage.height - this._height)){
  this._y = vtPosisiY;
 }
}

 /* **************************************************************************
  // fungsi-fungsi berikut inilah yang mengkolaborasikan semua objek disini :
  // (karena bingung menempatkannya, jadi saya urutkan saja sesuai abjad)
  ************************************************************************** */

//fungsi yg dipanggil pada saat game over
fGameOver = function() {
 for (i = 1; i < (vJumlahLevel + 2); i++) {
  removeMovieClip(eval("mc_ikan"+i));
  removeMovieClip(eval("mc_bom"+i))
  removeMovieClip(eval("mc_bom"+i+"meledak"));
 }
 gotoAndStop("gameover");
}

//ini untuk mendeteksi adanya tabrakan pinguin dengan ikan atau bom
fDeteksiKejadian = function(vtNamaBaru, vtPoin, vtBelumKena) { 

  /****************************************
   fungsi dalam if ini hanya akan dijalankan
   kalau ikan atau bom tsb menabrak pinguin
   dan juga objek tsb harus visible :
  *****************************************/

 if(vtNamaBaru.hitTest(mc_tux) && vtNamaBaru.vtBelumKena) {
  vSkor += vtPoin;     

  if(vSkor == (vSkorMinUtkNaikStage * vLevel)){
   fNaikStage();
   fTampilanLevel("Level "+vLevel);
  } else {
   fTampilanLevel("");
  }

   /************************
    membuat efek ledakan :
   ************************/

  if(vtPoin!=vSkorIkan){
   vNyawa-=1;
   duplicateMovieClip(mc_duarr,eval(vtNamaBaru+"meledak"),this.
getNextHighestDepth());
   setProperty(eval(vtNamaBaru+"meledak"),_x,getProperty(mc_tux,_x));
   setProperty(eval(vtNamaBaru+"meledak"),_y,getProperty(mc_tux,_y));
  } else {
   removeMovieClip(eval(vtNamaBaru+"meledak"));
  }  

  vtNamaBaru.vtBelumKena = false;
  vtNamaBaru._visible = false;
 }
}

//setiap kali pindah level, movieclip ikan dan bom akan diduplikasi
fKloning = function(vtNama_mc, vtBanyak, vtPoin) {
 for (i=1; i<vtBanyak; i++) {
  var vtNamaBaru:String = vtNama_mc+i;
  duplicateMovieClip(vtNama_mc, vtNamaBaru, this.getNextHighestDepth());
  setProperty(vtNamaBaru, _x, random(Stage.width));
  setProperty(vtNamaBaru, _y, Stage.height);
  fNaikTurun(vtNamaBaru,5+random(5*vLevel),vtPoin);
 }
 removeMovieClip(eval(vtNama_mc+(vtBanyak)));
}

//klo naik level...
fNaikStage = function() {
 vLevel += 1;
 fKloning("mc_ikan",(vJumlahLevel-vLevel),vSkorIkan);
 fKloning("mc_bom",(vLevel+1),vSkorBom);
}

//fungsi untuk menggerakkan hujan ikan2 dan bom2
fNaikTurun = function(vtNamaBaru, vtKecepatan, vtPoin) {
 var vtBelumKena:Boolean = true;
 eval(vtNamaBaru).onEnterFrame = function(){
 //fungsi ini dipanggil setiap enterFrame
  if((vLevel > vJumlahLevel) || (vNyawa < 1)) {
   fGameOver();
  }
  setProperty(this, _y, getProperty(this, _y) + vtKecepatan);
  fDeteksiKejadian(eval(vtNamaBaru),vtPoin,vtBelumKena); 

  if (this._y > (Stage.height+60)) {
   setProperty(this, _y, (random(Stage.height))-(Stage.height));
   setProperty(this, _x, random(Stage.width));
   this.vtBelumKena = true;
   this._visible = true;
  }
 }
}

//untuk tampilan level di stage
fTampilanLevel = function(vtString) {
 txt_level.text=vtString;
}

fNaikStage(); //fungsi ini dipanggil sekali untuk naik ke level 1 
(inisialisasi level = 0)
skrip untuk disimpan di frame ‘game over’:
stop(); //supaya ngga jalan kemana2

var vInputNamaTerakhir:String = so_skor.data.namaTerakhir;
var vJuaraKe:Number = 6;
var j:Number = jmlTopSkorer; // variabel jmlTopSkorer dideklarasi di frame 1 

// fungsi ini dijalankan jika tombol OK ditekan :
btn_ok.onPress=function()
{
 //bandingkan dengan skor hasil dg skor yg ada (untuk menentukan peringkat)
 for(i=5; i>=1; i--) {
  if(vSkor > eval("so_skor.data.topSkor"+i)){
   vJuaraKe = i
  }
 }   

 //fungsi while ini hanya dijalankan jika skor hasil lebih besar dari skor yg ada
 while (vJuaraKe <= j) {
  so_skor.data["topSkor"+j] = so_skor.data["topSkor"+(j-1)];
  so_skor.data["namaTopSkorer"+j] = so_skor.data["namaTopSkorer"+(j-1)];
  j-=1;
 }
 so_skor.data["topSkor"+vJuaraKe] = vSkor;
 so_skor.data["namaTopSkorer"+vJuaraKe] = text_namaSkorer.text;

 so_skor.data.namaTerakhir = text_namaSkorer.text; //simpan nama pemain
 so_skor.flush(); //tulis data ke so_skor
}
Peringatan : ActionScript diatas hanya buatan Saya saja sehingga wajar klo terlihat berantakan dan belepotan :mrgreen: , jadi silahkan perbaiki dan improvisasikan dengan kreasi sendiri. Untuk mendownload game diatas klik link berikut. disini


Membuat Objek Game Maker

 Membuat Objek dalam Game Maker
Pernahkah teman-teman bermimpi bisa membuat game yang hebat? , dan mengizinkan teman-taman anda untuk memainkan permainan ciptaan anda?. Jika kedua jawaban tersebut anda jawab”Ya” berarti anda datang ke situs yang tepat, dan jika jawaban anda “tidak” maka anda beruntung karena berkesempatan untuk
bisa mempelajari ilmu yang bermanfaat. Game!, sepertinya kata ini sudah tidak asing terdengar di telinga anda, karena dari mulai anak kecil samapai orang dewasa pun semua mengenalnya. Setiap detik, setiap menit, setiap jam, pokoknya setiap saat anda selalu bersamanya (maaf berlebihan, nggak juga kali ya! ). Ok deh sekarang langsung ke intinya, di sini anda akan belajar bagaimana membuat game dengan software yang keren bin canggih yaitu “Game Maker”. Game maker atau biasa disingkat”GM” adalah sebuah software komputer yang bisa memberikan akses untuk anda agar bisa membuat game hanya dengan metode mudah yaitu Drag & Drop.Bahkan jika anda bisa sedikit menguasai bahasa GML (Game maker Language) saya yakin anda akan mampu membuat game yang professional(di bahas pada bab selanjutnya). Game Maker terdiri dari dua edisi yaitu Edisi Lite dan Edisi Pro. Kedua-duanya memiliki potensi besar untuk bisa membuat game yang hebat. Namun Edisi Pro memiliki keunggulan lebih yaitu: Menghilangkan logo game maker di saat loading, dan fitur tambahan lain. Namun kabar baiknya, tidak seperti software lain yang mempunyai jangka waktu, Game Maker bisa di gunakan selama-lamanya (sasebeuhna) walaupun anda tidak melakukan register. Dan hebatnya lagi, jika anda pandai anda bisa mengakali kode-kode yang ada di versi Pro sehingga bisa di gunakan di Versi yang Lite. Jadi apa yang anda tunggu, mari kita langsung menuju ke TKP dan bersiap untuk membuat Game impian anda.Pada tutorial game maker sebelumnya kamu telah mempelajari mengenai bagaimana Memasukan sprites (gambar) ke dalam game maker. Pada tutorial game maker kali ini kamu akan mempelajari mengenai bagaimana cara membuat Objek dalam game maker. Objek adalah komponen dalam game maker yang berfungsi untuk menuliskan perintah-perintah yang harus di jalankan oleh suatu sprites atau resources lain. Objek memiliki peranan penting karena mengatur segala interaksi yang terjadi dalam game, misalnya karakter bergerak, menembak, atau menghindar.Untuk membuat objek dalam game maker caranya yaitu : “Klik kanan Object --) Create Object “, maka akan muncul tampilan berikut ini:
Menu objek cukup kompleks, karena di bagian kiri terdapat informasi mengenai sprites yang akan di pakai, di bagian tengah terdapat “menu event” dan di bagian kanan terdapat “menu Action”. Menu event dan action akan kamu pelajari pada pembahasan selanjutnya. Lalu masukan sprites yang kamu inginkan ke dalam objek. Menu visible berfungsi untuk menentukan apakah sprites yang kita masukan harus terlihat dalam permainan atau tidak. Sebagian besar Sprites dibuat visible tapi adakalanya Sprites di buat invisible (tidak terlihat), misalnya untuk membuat jalur gerak monster atau membuat pintu rahasia dalam game. Sedangkan menu Solid berfungsi untuk menentukan apakah objek tersebut harus di buat padat dan keras atau tidak , (biasanya menu ini solid di gunakan untuk membuat tembok). 
Membuat Event dalam Game Maker
  Untuk membuat Event caranya cukup mudah yaitu masuk ke menu objek lagi, lalu klik add event. Di bawah ini merupakan penjelasan fungsi-fungsi tombol yang ada pada menu event.
Create Event
Menu ini berfungsi untuk membuat suatu event ( kejadian) ketika suatu objek tersebut dibuat. Menu ini biasanya digunkan untuk membuat variable objek dalam game.
Destroy Event
Menu ini berfungsi untuk membuat suatu kejadian ketika suatu objek dihancurkan dalam game, menu ini jarang di pergunkan karena menu ini bisa di wakili oleh Action “Destroy Instance”.
Alarm Event
Menu ini berfungsi untuk membuat suatu kejadian yang kita telah set waktunya, (pembahasan yang lebih terperinci akan di bahas pada tutorial selanjutnya).
Step Event
Menu ini berfungsi untuk membuat suatu kejadian yan terjadi di saat suatu objek melakukan gerakan misalnya bergerak, melompat, atau menembak. Jika kamu mengetahui gml atau bahasa pemrograman game maker, maka menu ini sangat efektif untuk membuat perintah perintah menu “action” menjadi lebih singkat dan terorganisir.
Collision Event
Dalam game maker, menu ini berfungsi untuk membuat suatu kejadian yang terjadi persis ketika suatu objek bertumbukan atau menyentuh objek lain. Menu ini sangat efektif untuk membuat kejadian seperti apakah yang terjadi bila peluru menyentuh karakter, atau bila karakter menyentuh power-up atau item.

Keyboard Event
Sesuai dengan namanya, menu ini berfungsi untuk membuat kejadian yang terjadi ketika suatu tombol di keyboard di tekan, misalnya bila keyboard di tekan maka akan membuka jendela inventory atau arah panah untuk menggerakan pemain.
Event Game Maker - bagian dua
Tutorial game maker kali ini merupakan lanjutan dari tutorial sebelumnya yaitu mengenai bagaimana membuat event di game maker. Event yang akan di bahas pada tutorial ini yaitu : mouse event, dan other event.
Mouse Event
Event ini berfungsi untuk membuat suatu kejadian yang terjadi pada saat ada interaksi dengan mouse ( klik kiri, klik kanan, dan lain-lain). Tidak hanya itu saja, event ini pun memungkinkan kamu untuk bisa membuat objek bisa berinteraksi dengan tombol-tombol di joystick.
Other Event
Event ini merupakan event yang paling bervariasi fungsinya :
Outside event : Event ini berfungsi untuk membuat suatu kejadian yang terjadi pada saat suatu objek meninggalkan ruangan (room), contoh penggunaan event ini misalnya untuk membuat kejadian ketika karakter jatuh dari tebing,dll.
Boundary event : sama seperti Outside Event, hanya saja bila outside event akan terjadi jika seluruh bagian objek meninggalkan ruangan, sedangkan bila boundary event akan terjadi walaupun hanya sedikit bagian dari objek yang keluar dari ruangan.
Views event: berfungsi untuk menampilkan ruangan dalam sudut pandang berbeda, event ini biasanya di gunkan untuk game 3D.
Game Start Event : berfungsi untuk membuat suatu kejadian yang terjadi pada saat permulaan game, event ini biasanya di gunakan untuk memanggil load data Secara otomatis atau memainkan musik pada saat intro game.
Game End Event : fungsinya merupakan kebalikan dari game start event, event ini biasanya di gunakan untuk membuat auto saving dalam suatu game.
Room Start event : berfungsi untuk membuat suatu kejadian dalam game yang terjadi pada saat stage di mulai, biasanya event ini digunakan untuk menginisialisasi objek-objek yang ada pada game.
Room End Event : berfungsi untuk membuat suatu kejadian dalam game yang terjadi pada saat stage usai atau pemain kembali lagi ke layer title.
Event Game Maker - bagian tiga
Tutorial game maker kali ini merupakan akhir pembahasan dasar mengenai menu Event di game maker. Event yang akan di bahas pada tutorial ini adalah Other Event, Drawing event, Key Pressed dan Key Released Event.
No More Lives : Event ini berfungsi untuk membuat suatu kejadian di dalam game maker yang terjadi pada saat semua nyawa karakter telah habis terpakai, event ini biasanya di gunakan untuk menampilkan layar game over,dll.
No More Health : Event ini jarang saya gunakan karena fungsinya sangat terbatas, saya mengganti event ini dengan sistem varibel ( pembahasan mengenai variable akan di bahas pada game maker tutorial selanjutnya.
End of Animation : Event ini berfungsi untuk membuat suatu kejadian dalam game yang terjadi pada saat animasi suatu objek berakhir, event ini hanya efektif digunakan bila sprite yang digunakan mempunyai lebih dari satu subimage.
End of path : Event ini berfungsi untuk membuat suatu kejadian yang terjadi ketika suatu objek mencapai batas dari suatu path yang sudah di tentukan ( pembahasan mengenai path akan di bahas pada tutorial game maker selanjutnya).
Close Button : Event ini hanya akan berfungsi jika kita mendisable fungsi “ treat close button as key yang ada pada global game setting---) other.
User Definied : Tidak ada penjelasan untuk Use definied karena event ini di buat dan didefiniskan oleh kamu sendiri dengan menggunakan keahlian gml kode.
Drawing event
Event ini berfungsi untuk menggambar suatu objek , misalnya Health suatu karakter, menggambar poligon ( dalam game 3D ) , dan segala sesuatu yang berhubungan dengan gambar dan settingnya.
Key pressed dan Key Released Events
Kedua event ini fungsinya hampir sama dengan Keyboard Event, di bawah ini merupakan perbedaan diantara ketiga event tersebut.
Keyboard Event : Fungsi ini akan terjadi bila pemain menekan dan menahan tombol, event ini biasanya digunkan untuk menggerakan pemain.
Key Pressed Event: Fungsi ini akan terjadi hanya satu kali yaitu tepat pada saat tombol ditekan sehingga mempunyai jeda waktu, event ini berfungsi untuk membuat karakter dapat menembakan projektil atau peluru kepada musuh.
Key Released Event: Fungsinya merupakan kebalikan dari key pressed event, sehingga event ini akan terjadi bila pemain berhenti melepaskan tombol.
Mengolah Gambar Strips
Pada tutorial game maker sebelumnya kamu telah mempelajari mengenai fungsi dasar event-event yang ada di game maker. Lalu, pada tutorial game maker kali ini kamu akan mempelajari mengenai strips dan bagaimana cara mengolahnya .Strips adalah suatu kumpulan gambar (sprites) yang memuat aksi atau gerak yang saling berkaitan , stripes biasanya di gunakan untuk membuat animasi objek, misalnya : animasi untuk karakter bergerak, animasi karakter menebas musuh, dan lain-lain . Cara mengolah gambar strips cukup mudah yaitu : klik kanan Sprite ---) Create Sprite ---) Edit Sprite ---) File ---) Create From Strips, lalu pilih gambar strips yang akan di gunakan maka Setelah itu akan muncul tampilan seperti berikut ini :
 Penjelasan menu parameter:
Number of Images : Parameter ini untuk menentukan berapa banyak gambar yang akan di ambil dari strips itu, ( jika panjang dan lebar gambar dari strips itu beraturan disarankan menggunkan parameter ini, jika panjang dan lebarnya tidak beraturan disarankan tidak mempergunkan parameter ini ).
Images per row : parameter ini berfungsi untuk menentukan berapa banyak image yang akan di ambil Secara vertical.
Image Width : Lebar gambar yang akan di ambil dari strips.
Image Height: Tinggi gambar yang akan di ambil dari strips.
Vertical Cell Offset dan horizontal Cell Offset : Kedua parameter ini jarang saya gunakan, fungsinya untuk melewati gambar daris strips sebesar Image width dan Image height.
Vertikal dan horizontal pixel offset : Kedua parameter ini berfungsi untuk menentukan koordinat gambar yang akan di ambil dari sebuah strips.
Horizontal separation dan vertical separation: Kedua parameter ini berfungsi untuk memberikan ruang kosong diantara gambar yang akan di ambil, biasanya fungsi ini digunakan bila gambar dalam sebuah strips mempunyai jarak atau ruang kosong. Setelah kamu mendapatkan gambar yang tepat dari sebuah strips , klik tombol OK. Maka gambar yang tadi kamu pilih akan menjadi sebuah sprite, dan jika kamu Memasukan dua sprites atau lebih dari sebuah strips, maka akan terbentuklah sebuah animasi yang kamu inginkan.
Cara Membuat Script di Game Maker
Pada tutorial game maker kali ini kamu akan belajar mengenai cara membuat sebuah script di game maker. Script dalam game maker merupakan sekumpulan perintah yang di tulis dalam bahasa pemrograman yang diberikan kepada suatu objek agar dapat melakukan suatu interaksi dalam game.
Cara membuat script dalam game maker sangatlah mudah , yaitu :
  • Klik kanan Objek yang akan dipakai.
  • Lalu pilih properties.
  • Setelah itu pilih event yang di perlukan ( penjelasan menu event game maker )
  • Pilih “control” .
  • lalu klik kanan execute code, untuk lebih jelasnya perhatikan gambar di bawah ini :
  
Maka setelah itu akan muncul sebuah window box berwarna putih yang diatasnya bertuliskan execute code, di bawah ini merupakan penjelasan dari window box tersebut :
Applies to self : Menu ini berfungsi untuk memberikan perintah bahwa script yang kamu tulis harus di jalankan oleh objek itu sendiri.
Applies to other : Menu ini berfungsi untuk memberi perintah bahwa script yang kamu tulis harus dijalakan oleh objek lain, misalnya oleh objek yang bersentuhan .
Applies to object : Menu ini berfungsi untuk memberi perintah kepada objek bahwa script yang kamu tulis tersebut harus di jalankan oleh objek lain yang sudah di definiskan sebelumnya.
Go to particular line : menu ini berfungsi untuk pergi ke baris yang telah kamu tentukan, menu ini bisanya di gunakan setelah kita tahu pesan error di debug mode.
Check the script for the syntax error : menu ini sangat berguna untuk mendeteksi kesalahan-kesalahan kode yang kamu tulis pada script, kesalahan yang sering terjadi misalnya kurang menambahkan tanda kurung di akhir sebuah statement, atau salah menuliskan ejaan script code.