Jumat, 25 November 2011

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



Tidak ada komentar:

Poskan Komentar