Cara Membuat Game Bola Free kick :
Output nya :
-
- Bersiap untuk menendang
-
- Bola out
-
- Gooooollll….!!!
-
- Bola diblok kiper
Sekarang masuk ke pertanyaan, bagaimana cara membuat permainannya?
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:
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(); |
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()); |
018 | bola.gotoAndStop( "frameBiasa" ); |
019 | keterangan.gotoAndStop( "frameAwal" ); |
021 | keterangan.onRelease = function () |
023 | removeMovieClip( "pemain" ); |
024 | removeMovieClip( "bola" ); |
025 | removeMovieClip( "kiper" ); |
029 | listenerKey.onKeyDown = function () |
031 | posisiPemain = pemain._x; |
033 | if (((kiper._x - 200) - posisiPemain) > 50) |
035 | posisiGerakKiper = -5; |
037 | else if (((kiper._x - 200) - posisiPemain) < -50) |
039 | posisiGerakKiper = 5; |
043 | posisiGerakKiper = 0; |
046 | kiper._x += posisiGerakKiper; |
048 | if (Key.isDown(Key.LEFT)) |
053 | if (Key.isDown(Key.RIGHT)) |
058 | if (pemain._x < 50 || pemain._x > 200) |
060 | pemain._x = posisiPemain; |
063 | if (Key.isDown(Key.SPACE)) |
065 | tenaga = (Math.floor(Math.random() * (9)) + 6) * 10; |
069 | Key.addListener(listenerKey); |
071 | function attachSetScaleDanXY(id:String, namaBaru:String, skala:Number, xx:Number, yy:Number, depth:Number) |
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); |
080 | function bolaDitendang() |
082 | delete listenerKey.onKeyDown; |
083 | posisiBolaSemula = bola._y; |
085 | bola.onEnterFrame = function () |
087 | if (kiper._x - bola._x > 10) |
089 | posisiGerakKiper = -20; |
091 | else if (kiper._x - bola._x < -10) |
093 | posisiGerakKiper = 20; |
097 | posisiGerakKiper = 0; |
100 | kiper._x += posisiGerakKiper; |
101 | kiper._rotation += posisiGerakKiper / 2; |
108 | bola._y -= tenaga / 10; |
109 | bola._x += (tenaga / 10) - ((posisiPemain - 150) / 10); |
111 | setProperty(bola, _xscale, getProperty(bola, _y) / posisiBolaSemula * 100); |
112 | setProperty(bola, _yscale, getProperty(bola, _y) / posisiBolaSemula * 100); |
114 | if ((posisiBolaSemula - bola._y) > (tenaga * 2)) |
116 | delete bola.onEnterFrame; |
117 | if (bola.hitTest(kiper.tangkapan)) |
119 | keterangan.gotoAndStop( "frameBlocked" ); |
120 | bola.gotoAndStop( "frameKena" ); |
122 | else if ((bola._x > 200) && (bola._x < 500) && (bola._y > 60) && (bola._y < 200)) |
124 | keterangan.gotoAndStop( "frameGol" ); |
128 | keterangan.gotoAndStop( "frameOut" ); |
***
Footnote:
0 komentar:
Post a Comment