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