oleh charlie
buat iseng-iseng aja....
Sudah pernah coba main game Tux yang makan-makanin biskuit? (klo belum tau baca dulu tulisan yang ini) Nah, karena gamenya sederhana ini mudah untuk dipelajari… dan karena Saya lagi baik maka Saya beritahu Anda yang penasaran, berikut ini langkah-langkah pembuatannya:
#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 (baca artikel Saya sebelumnya). 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:
03 | var so_skor:SharedObject = SharedObject.getLocal( "catatanSkor" , "/" ); |
04 | var jmlTopSkorer:Number = 5; |
05 | text_topSkorer.text = "" ; |
14 | if ( so_skor.data.topSkor1 == undefined) |
16 | for (i=1; i<=jmlTopSkorer; i++){ |
17 | so_skor.data[ "topSkor" +i]=1500/i; |
18 | so_skor.data[ "namaTopSkorer" +i]= "Faisalman" ; |
26 | for (i = 1; i <= jmlTopSkorer; i++) { |
27 | text_topSkorer.text = text_topSkorer.text + "\\n" + eval( "so_skor.data.namaTopSkorer" +i) + " " + eval( "so_skor.data.topSkor" +i); |
34 | btn_main.onPress = function (){ |
35 | gotoAndStop( "permainan" ); |
42 | btn_keluar.onPress = function (){ |
43 | fscommand( "quit" , true ); |
#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’:
003 | var vLevel:Number = 0; |
005 | var vNyawa:Number = 5; |
006 | var vJumlahLevel:Number = 8; |
007 | var vSkorIkan:Number = 10; |
008 | var vSkorBom:Number = -25; |
009 | var vSkorMinUtkNaikStage:Number = 250; |
016 | mc_tux.onEnterFrame = function () { |
020 | if (Key.isDown(Key.UP)){ |
023 | if (Key.isDown(Key.DOWN)){ |
026 | if (Key.isDown(Key.LEFT)){ |
029 | if (Key.isDown(Key.RIGHT)){ |
032 | if ( this ._x<0 || this ._x > (Stage.width - this ._width)){ |
035 | if ( this ._y<0 || this ._y > (Stage.height - this ._height)){ |
046 | fGameOver = function () { |
047 | for (i = 1; i < (vJumlahLevel + 2); i++) { |
048 | removeMovieClip(eval( "mc_ikan" +i)); |
049 | removeMovieClip(eval( "mc_bom" +i)) |
050 | removeMovieClip(eval( "mc_bom" +i+ "meledak" )); |
052 | gotoAndStop( "gameover" ); |
056 | fDeteksiKejadian = function (vtNamaBaru, vtPoin, vtBelumKena) { |
064 | if (vtNamaBaru.hitTest(mc_tux) && vtNamaBaru.vtBelumKena) { |
067 | if (vSkor == (vSkorMinUtkNaikStage * vLevel)){ |
069 | fTampilanLevel( "Level " +vLevel); |
078 | if (vtPoin!=vSkorIkan){ |
080 | duplicateMovieClip(mc_duarr,eval(vtNamaBaru+ "meledak" ), this .getNextHighestDepth()); |
081 | setProperty(eval(vtNamaBaru+ "meledak" ),_x,getProperty(mc_tux,_x)); |
082 | setProperty(eval(vtNamaBaru+ "meledak" ),_y,getProperty(mc_tux,_y)); |
084 | removeMovieClip(eval(vtNamaBaru+ "meledak" )); |
087 | vtNamaBaru.vtBelumKena = false ; |
088 | vtNamaBaru._visible = false ; |
093 | fKloning = function (vtNama_mc, vtBanyak, vtPoin) { |
094 | for (i=1; i<vtBanyak; i++) { |
095 | var vtNamaBaru:String = vtNama_mc+i; |
096 | duplicateMovieClip(vtNama_mc, vtNamaBaru, this .getNextHighestDepth()); |
097 | setProperty(vtNamaBaru, _x, random(Stage.width)); |
098 | setProperty(vtNamaBaru, _y, Stage.height); |
099 | fNaikTurun(vtNamaBaru,5+random(5*vLevel),vtPoin); |
101 | removeMovieClip(eval(vtNama_mc+(vtBanyak))); |
105 | fNaikStage = function () { |
107 | fKloning( "mc_ikan" ,(vJumlahLevel-vLevel),vSkorIkan); |
108 | fKloning( "mc_bom" ,(vLevel+1),vSkorBom); |
112 | fNaikTurun = function (vtNamaBaru, vtKecepatan, vtPoin) { |
113 | var vtBelumKena:Boolean = true ; |
114 | eval(vtNamaBaru).onEnterFrame = function (){ |
116 | if ((vLevel > vJumlahLevel) || (vNyawa < 1)) { |
119 | setProperty( this , _y, getProperty( this , _y) + vtKecepatan); |
120 | fDeteksiKejadian(eval(vtNamaBaru),vtPoin,vtBelumKena); |
122 | if ( this ._y > (Stage.height+60)) { |
123 | setProperty( this , _y, (random(Stage.height))-(Stage.height)); |
124 | setProperty( this , _x, random(Stage.width)); |
125 | this .vtBelumKena = true ; |
126 | this ._visible = true ; |
132 | fTampilanLevel = function (vtString) { |
133 | txt_level.text=vtString; |
skrip untuk disimpan di frame ‘game over’:
03 | var vInputNamaTerakhir:String = so_skor.data.namaTerakhir; |
04 | var vJuaraKe:Number = 6; |
05 | var j:Number = jmlTopSkorer; |
08 | btn_ok.onPress= function () |
12 | if (vSkor > eval( "so_skor.data.topSkor" +i)){ |
18 | while (vJuaraKe <= j) { |
19 | so_skor.data[ "topSkor" +j] = so_skor.data[ "topSkor" +(j-1)]; |
20 | so_skor.data[ "namaTopSkorer" +j] = so_skor.data[ "namaTopSkorer" +(j-1)]; |
23 | so_skor.data[ "topSkor" +vJuaraKe] = vSkor; |
24 | so_skor.data[ "namaTopSkorer" +vJuaraKe] = text_namaSkorer.text; |
26 | so_skor.data.namaTerakhir = text_namaSkorer.text; |
Peringatan : ActionScript diatas hanya buatan Saya saja sehingga wajar klo terlihat berantakan dan belepotan
, jadi silahkan perbaiki dan improvisasikan dengan kreasi sendiri… (klo script di wordpress ini beda dengan script di file .fla-nya, maka script di file .fla-nya yang benar karena paling akhir diupdate). Source .fla-nya sendiri ini bisa diunduh di
http://tinyurl.com/F4154LMAN-game-cupu-source, untuk yang udah jadinya lihat di
http://faisalman.wordpress.com/2007/08/02/ayo-buat-game-sendiri/
Tidak ada komentar:
Posting Komentar