Tutorial Flash Ledakan Berantai
Ledakan Berantai
Pada tutorial pertama di tahun 2013 ini kita akan membuat sebuah kerangka (prototype) game. Kerangka game yang akan kita buat kali ini berupa sebuah lingkaran yang jika ditekan akan menjadi besar. Saat lingkaran sudah mencapai besar yang maksimal, maka lingkaran akan meledak dan menembakan peluru ke 4 mata angin. Jika lingkaran yang lain terkena peluru ini maka akan menjadi lebih besar dan jika besar sudah maksimal maka akan meledak dan menembakan peluru. Nah tugas kita adalah bagaimana caranya seluruh lingkaran bisa pecah dengan menggunakan ledakan berantai ini.
1. Buatlah sebuah flash document dengan ukuran 550×40 dan frame rate 30fps.
2. Buatlah sebuah lingkaran dengan ukuran 15×15 pixels.
5. Beri centang pada Export for Actionscript dan ketikkan “lingkaran” pada bagian Identifier lalu tekan Ok.
9. Beri centang pada Export for Actionscript dan ketikkan “peluru” pada bagian Identifier lalu tekan ok.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | //untuk mendetksi apakah ada peluru distage peluruStage = 0; //untuk menampung lingkaran distage _root.createEmptyMovieClip("tk1",_root.getNextHighestDepth()); //fungsi membuat lingkaran function buatLingkaran(xpos, ypos, size) { lingkaran = tk1.attachMovie("lingkaran", "lingkaran"+tk1.getNextHighestDepth(), tk1.getNextHighestDepth(), {_x:xpos, _y:ypos}); lingkaran.changeSize = size; lingkaran._width += 10*size; lingkaran._height += 10*size; lingkaran.onEnterFrame = function() { for (var ID in peluruHolder) { //jika peluru menabrak lingkaran if (this.hitTest(peluruHolder[ID]._x, peluruHolder[ID]._y, true)) { //ubah ukurannya menjadi lebih besar this.changeSize++; this._width += 10; this._height += 10; //hapus peluru yang menabrak peluruStage-- peluruHolder[ID].removeMovieClip(); //jika lingkaran sudah mencapai besar yang maksimal if (this._height>45 && this._height>45) { //tembakan empat peluru dan hapus lingkaran buatPeluru(this,1); buatPeluru(this,2); buatPeluru(this,3); buatPeluru(this,4); this.removeMovieClip(); } } } }; //jika lingkaran ditekan ketika tidak ada peluru distage lingkaran.onPress = function() { if (peluruStage == 0) { //ubah ukurannya menjadi lebih besar this.changeSize++; this._width += 10; this._height += 10; //jika lingkaran sudah mencapai besar yang maksimal if (this.changeSize>=4) { //tembakan empat peluru dan hapus lingkaran buatPeluru(this,1); buatPeluru(this,2); buatPeluru(this,3); buatPeluru(this,4); this.removeMovieClip(); } } }; } //untuk mengatur kecepatan gerak peluru peluruSpeed = 5; //untuk menampung peluru distage _root.createEmptyMovieClip("peluruHolder",_root.getNextHighestDepth()); //fungsi untuk membuat peluru function buatPeluru(target, type) { peluruStage++; var ID:Number = Math.random(); //peluru keatas if (type == 1) { peluruHolder.attachMovie("peluru","peluru"+ID,peluruHolder.getNextHighestDepth(),{_x:target._x, _y:target._y}); peluruHolder["peluru"+ID]._rotation = 90; } //peluru kekanan if (type == 2) { peluruHolder.attachMovie("peluru","peluru"+ID,peluruHolder.getNextHighestDepth(),{_x:target._x, _y:target._y}); } //peluru kebawah if (type == 3) { peluruHolder.attachMovie("peluru","peluru"+ID,peluruHolder.getNextHighestDepth(),{_x:target._x, _y:target._y}); peluruHolder["peluru"+ID]._rotation = 90; } //peluru kekiri if (type == 4) { peluruHolder.attachMovie("peluru","peluru"+ID,peluruHolder.getNextHighestDepth(),{_x:target._x, _y:target._y}); } peluruHolder["peluru"+ID].onEnterFrame = function() { //gerakkan peluru berdasarkan type //bergerak keatas if (type == 1) { this._y -= peluruSpeed; } //bergerak kekanan if (type == 2) { this._x += peluruSpeed; } //bergerak kebawah if (type == 3) { this._y += peluruSpeed; } //bergerak kekiri if (type == 4) { this._x -= peluruSpeed; } //hapus peluru jika keluar dari stage if (this._x<-50 || this._x>Stage.width+50 || this._y<-50 || this._y>Stage.height+50) { peluruStage-- this.removeMovieClip(); } }; } //script untuk mengatur dan meletakan lingkaran distage level = new Array(); level[0] = new Array(0, 0, 0, 0, 0, 3, 0); level[1] = new Array(0, 1, 3, 1, 2, 2, 1); level[2] = new Array(2, 2, 2, 0, 2, 2, 2); level[3] = new Array(3, 2, 2, 1, 2, 2, 1); level[4] = new Array(0, 2, 1, 0, 3, 3, 1); level[5] = new Array(0, 2, 3, 1, 3, 1, 0); level[6] = new Array(3, 0, 0, 3, 3, 1, 0); //meletakan lingkaran berdasarkan level array for (j=0; j<=6; j++) { for (i=0; i<=6; i++) { //lingkaran kecil if (level[j][i] == 1) { buatLingkaran(i*55+35,j*55+35,0); } //lingkaran sedang if (level[j][i] == 2) { buatLingkaran(i*55+35,j*55+35,2); } //lingkaran besar if (level[j][i] == 3) { buatLingkaran(i*55+35,j*55+35,3); } } } |
Tekan lingkaran sampai pecah. Bisakan anda menghancurkan seluruh lingkaran dalam sekali tekan?
0 komentar: