Docstoc

Tutorial Game Flash Balap Mobil

Document Sample
Tutorial Game Flash Balap Mobil Powered By Docstoc
					       Tutorial Game Flash 
    “Membuat game Mobil Balap” 




                                         
 
                Created by : 
               Shandy Dimas 
                       
             Jenis Permainan : 
               Race(Balapan) 
                       
                 Program : 
        Adobe Flash CS3 Professional 
            Macromedia Flash 8 
                       
            Waktu Penyelesaian : 
         1 Jam (Tingkat Menengah) 
                                        


                                                    
Segala puji bagi Allah SWT yang telah memberikan hidayah dan inayah kepada 
kita semua. Dan nikmat yang tiada tara serta senantiasa bersholawat kepada 
Rosulullah SAW, keluarga‐keluarga beliau, serta para sahabatnya 
 
Alhamdulillah saya telah membuat tutorial yang cukup ringkas mudah2an 
mengerti dan diberi kemudahan menyerap ilmu 




                                                        
 “Ya Allah! Aku memohon kepada‐Mu ilmu yang bermanfaat, rezeki yang baik dan 
                 amalan yang diterima” [Sahih Ibn Majah: 1‐152] 
                                         
Jika ada kelebihan semata‐mata datangnya dari Allah SWT dan jika ada 
kekurangan semata‐mata karena hawa nafsu ini. 
 
Semoga menjadi amalan yang terima disisi Allah SWT serta mengharap 
keridhaanNya 
 
Amin 
Ama Ba’d 
 
 
 
 
 
 
 
 
 
Menggerakkan Mobil 
1. Gerakan mobil bukanlah bagian paling sulit dari sebuah game racing, tapi jika Anda ingin 
mensimulasikan realistis (hampir realistis) gerakan Anda harus mengambil pertimbangan beberapa 
aspek yang diuraikan di bawah. 
2. Download dan buka file racing_part1_step1.fla. 
3. Klik pada frame pertama (frame saja) dari lapisan "DEFS" dan tekan F9 untuk menampilkan Window 
Tindakan untuk frame ini. Sekarang mari kita lihat apa variabel‐variabel ini lakukan: 
Kode Script : 
  car1.code = "player";
  // variabel ini akan memutuskan apakah mobil yang ditetapkan dikendalikan
  oleh pemain manusia atau oleh komputer (dalam Bagian II dari tutorial ini
  Anda akan belajar bagaimana menambahkan lawan dan variabel ini akan
  berguna)
  acceleration = 0.4;
  // variabel percepatan akan menambah variabel kecepatan pada setiap
  peristiwa enterFrame (dalam hal ini 24 kali per detik), sebuah
  menerjemahkan nilai yang lebih tinggi dalam akselerasi lebih cepat dari
  mobil
  speedDecay = 0.96;
  //ketika mobil tidak dipercepat (tombol UP dilepaskan), mobil harus
  memperlambat lancar; kecepatan akan kalikan dengan nilai ini (kurang dari
  1); semakin rendah nilai ini, semakin cepat mobil akan melambat
  rotationStep = 10;
  // ini adalah jumlah derajat yang akan meningkatkan atau menurunkan rotasi
  mobil (sudut) ketika tombol kiri atau kanan yang ditekan
  maxSpeed = 10;
  // ini adalah batas kecepatan di jalur kami, meningkat jika Anda ingin
  mobil untuk pergi fastereys yang ditekan
  backSpeed = 1;
  // ini adalah batas kecepatan ketika akan mundur
Keterangan : Tanda // bukan termasuk yang dibaca oleh script akan tetapi hanya keterangan saja 
 
4. OK! Sekarang mari kita kembali ke sekolah:) dan melihat apa yang bisa kita lakukan dengan variabel‐
variabel ini. Klik pada frame pertama dari lapisan kedua ("tindakan") dan jika Tindakan jendela tidak 
terbuka, tekan F9 untuk menampilkan itu. Kita akan membahas script ini dalam beberapa saat, tapi 
pertama‐tama mari kita lihat bagaimana Flash "memahami" gerakan dan koordinat. 
Hanya sedikit trigonometri dan Flash 
Flash adalah menggunakan Sistem Koordinat Cartesian klasik (sistem grid yang didasarkan dengan OX 
sumbu horisontal dan sumbu vertikal OY). 
                                                                                   
 
Anda melihat pada gambar terlampir yang di Flash sumbu Y adalah terbalik berarti bahwa sisi negatif 
dari sumbu Y adalah diposisikan lebih tinggi dari sisi positif. Jadi koordinat yang lebih rendah adalah, 
nilai itu akan lebih tinggi.  
Karena Flash hanya memahami vektor horisontal dan vertikal kita harus menghitung horizontal dan 
komponen vertikal dari "kecepatan" yang sebenarnya.  
Jadi, dari trigonometri kita tahu (dalam hal ini) bahwa: 
                                  sin(angle) = speedx/speed

                                  cos(angle) = speedy/speed


 jadi ... kita tahu sudut (sudut = car._rotation) dan kita tahu kecepatan. Itu saja yang kita perlu
tahu. Apakah itu? No Anda perlu tahu satu hal lagi:
Kelas Math diimplementasikan di Macromedia Flash tidak bekerja dengan sudut diukur dalam
derajat. Sebaliknya, kita akan harus menyediakan sudut diukur dalam radian (sebuah satuan
pengukuran alternatif untuk sudut).Satunya kasus di mana Anda akan menggunakan derajat
adalah ketika benar-benar memutar MovieClips.
Menggunakan persamaan sederhana di bawah ini Anda akan mampu mengubah derajat ke
radian:
                          angle_radians = angle_degrees * (PI/180)

Sekarang kita dapat dengan mudah menghitung komponen X dan Y dari kecepatan mobil:
                 speedx = Math.sin(_rotation*(Math.PI/180))*speed;
                 speedy = Math.cos(_rotation*(Math.PI/180))*speed*-1;
Nah, Anda sudah tahu mengapa tanda komponen Y harus terbalik;)

Dan sekarang mari kita kembali ke Flash dan Window Tindakan kami. Berikutnya saya akan
menjelaskan apa yang "langkah" fungsi adalah semua tentang. "Langkah" fungsi akan dieksekusi
pada setiap acara enterFrame (pada layer "stepper" Anda akan menemukan movieklip kosongkan
mengeksekusi onClipEvent (enterFrame) rutin).
Kode Script :
  function step(who) {
          //periksa untuk melihat apakah mobil tersebut dikendalikan oleh
  pemain atau oleh komputer
          if (_root["car"+who].code == "player") {
                  //kami akan terus mengurangi kecepatan dengan
  mengalikannya dengan nomor di bawah 1, tetapi hanya jika kecepatan jika
  lebih tinggi dari 0,3; nilai yang lebih rendah hanya akan mengkonsumsi
  sumber daya dan gerakan bahkan tidak akan diperhatikan sehingga kita akan
  mengatur variabel kecepatan untuk 0
                  if (this["speed"+who]>0.3) {
                          this["speed"+who] *= _root.speedDecay;
                  } else {
                          this["speed"+who] = 0;
                  }
                  //mobil akan bereaksi terhadap penekanan tombol tertentu
  yang kita akan menangkap menggunakan metode Key.isDown sebagai berikut
                  if (Key.isDown(Key.UP) &&
  this["speed"+who]<_root.maxSpeed) {
                          this["speed"+who] += _root.acceleration;
                  }
                  // rem (sebaliknya) - hal yang sama, tetapi di sini kita
  kurangi
                  if (Key.isDown(Key.DOWN)) {
                          this["speed"+who] -= _root.backSpeed;
                  }
                  //mengarahkan kekiri - baik, kita hanya bisa menambahkan
  atau mengurangi sudut tetap (dalam derajat) ke / dari rotasi mobil, tapi
  itu tidak cukup baik. Dalam rangka untuk mensimulasikan gerakan alami,
  kemudi harus bergantung pada kecepatan, jika tidak, anda akan dapat
  memutar mobil Anda bahkan jika itu hampir berhenti dan akan terlihat
  seperti baling-baling :)
                  if (Key.isDown(Key.LEFT) && this["speed"+who]>0.3) {
                          _root["car"+who]._rotation -=
  _root.rotationStep*(this["speed"+who]/_root.maxSpeed);
                  }
                  //mengarahkan kekanan - Anda sudah tahu apa yang terjadi
  disini
                  if (Key.isDown(Key.RIGHT) && this["speed"+who]>0.3) {
                          _root["car"+who]._rotation +=
  _root.rotationStep*(this["speed"+who]/_root.maxSpeed);
                  }
                  this["rotation"+who] = _root["car"+who]._rotation;
                  //kita menghitung dua komponen kecepatan (sumbu X dan
  sumbu Y) - telah kita bahas ini bagian dari fungsi di atas
          this["speedx"+who] =
  Math.sin(this["rotation"+who]*(Math.PI/180))*this["speed"+who];
                  this["speedy"+who] =
  Math.cos(this["rotation"+who]*(Math.PI/180))*this["speed"+who]*-1;
                  //menerapkan komponen pada posisi yang sebenarnya dari
  mobil - kita menambahkan komponen X kecepatan untuk koordinat X mobil dan
  komponen Y dari kecepatan untuk koordinat Y
                  _root["car"+who]._x += this["speedx"+who];
                  _root["car"+who]._y += this["speedy"+who];
                  //posisi bayangan mobil - ketika mobil mengarahkan, kita
  ingin bayangan untuk tetap X dan koordinat Y dan selalu tinggal di salah
  satu sisi mobil (sisi mana saja yang akan)
                  _root["shadow"+who]._x = _root["car"+who]._x-4;
                  _root["shadow"+who]._y = _root["car"+who]._y+2;
                  _root["shadow"+who]._rotation =
  _root["car"+who]._rotation;
          }
          if (_root["car"+who].code == "computer") {
                  // di tutorial berikutnya kita "Balapan Permainan Bagian
  II" kita akan menambah lawan untuk membuat permainan lebih dinamis dan
  interaktif
          }
  }
    Keterangan : Tanda // bukan termasuk yang dibaca oleh script akan tetapi hanya keterangan saja 
Tabrakan 
 
1. Kita semua tahu mengapa tabrakan yang penting dalam Game Racing ... Karena kita tidak ingin mobil 
untuk meninggalkan lintasan, karena kita ingin memaksa pemain untuk menggunakan cara tertentu, 
karena kami ingin dia / nya untuk menghindari tabrakan dalam rangka untuk mendapatkan waktu 
terbaik (atau menang lomba). 
Tabrakan merupakan bagian yang sangat penting dari sebuah permainan balap dan 70% dari perasaan 
permainan dan kesuksesan tergantung pada tabrakan yang baik. 
Kami tidak ingin mobil terjebak di daerah diakses non (NAA), kita tidak ingin untuk kehilangan kecepatan 
semua hampir tidak menyentuh meskipun daerah dan kita pasti tidak ingin untuk bangkit kembali 
(dengan membalik kecepatan). 
Dengan kata lain kita tidak ingin memberikan pemain waktu yang sulit, tetapi sebaliknya, permainan 
yang menyenangkan. Jadi, ketika mobil menyentuh NAA kita harus mencoba untuk memperbaiki 
lintasan itu dan tentu saja menerapkan hukuman kecepatan tergantung pada sudut tabrakan dan durasi 
tabrakan. 
2. Download dan buka file racing_part1_step2.fla. 
3. Sebelum kita kembali ke fungsi "langkah", saya akan menjelaskan bagaimana tabrakan akan bekerja. 
 
Menggunakan empat poin untuk mendeteksi  tabrakan 
 
Seperti yang dapat Anda lihat dalam gambar terlampir, kami akan memilih empat poin, satu di setiap sisi 
dari mobil dan memeriksa untuk melihat apakah mereka "menyentuh" NAA. 
                                                                                 
 
Sebagai contoh jika Point Sisi Kiri adalah dalam NAA (hits NAA) maka kita harus menerapkan hukuman 
kecepatan dan meningkatkan sudut (_rotation) dari mobil. Mengapa kita melakukan itu? Karena apa 
yang telah kita bahas sebelumnya: kita harus berusaha untuk memperbaiki lintasan mobil. Jadi apa yang 
kita lakukan di sini adalah kekuatan untuk mengarahkan mobil yang tepat. 
OK, saya kira semuanya jelas sampai ke titik ini. Dan karena kita berbicara tentang poin, mari kita lihat 
bagaimana kita menghitung koordinat mereka. Untuk menyederhanakan hal‐hal yang kita akan 
mengambil Point Sisi Kiri sebagai contoh. 
Ketika rotasi mobil adalah 0 tugas kita sangat sederhana: koordinat LSP adalah x = car._x‐20 (20 pixel ke 
kiri dari titik pusat mobil) dan y = car._y 
Tetapi mobil tidak akan selalu memiliki sudut 0. Nah, inilah bagian yang sulit. Ada beberapa cara untuk 
menghitung empat poin, bahkan jika sudut tidak 0 (misalnya Anda dapat menggunakan fungsi sinus dan 
kosinus) dan untuk tutorial ini saya memilih cara yang sederhana (saya tidak tahu apakah itu cara 
optimal , tapi itu sangat sederhana): 
 
Kita mendefinisikan Point Sisi Kiri seakan rotasi mobil adalah 0: 
                      car.pointLeft = {x:-20, y:0}; //this is an Object 
dan kemudian kita mengubah titik yang terkoordinasi dari lokal (terkait dengan klip mobil) ke global 
(terkait dengan klip _root mana kita akan menguji tabrakan): 
                              car.localToGlobal(car.pointLeft);
 Sekarang kita memiliki Point Sisi Kiri kami koordinat yang dapat kita gunakan untuk memeriksa 
tabrakan: 
                             car.pointLeft.x and car.pointLeft.y
Bisakah mendapatkan sederhana? :) 
4. Dan lagi kembali ke Window Tindakan kami. Klik pada frame pertama layer "tindakan" dan jika 
Window Tindakan tidak terbuka tekan F9 untuk menampilkan itu. 
Anda akan melihat bahwa saya menambahkan beberapa baris ke fungsi "langkah" dan Anda mungkin 
sudah tahu apa yang mereka lakukan baris:) tapi tetap saya akan pergi ke beberapa detail. 
Kode Script : 
   //tabrakan
   //menentukan titik-titik tabrakan empat
   _root["car"+who].pointLeft = {x:-20, y:0};
   _root["car"+who].localToGlobal(_root["car"+who].pointLeft);
   _root["car"+who].pointRight = {x:20, y:0};
   _root["car"+who].localToGlobal(_root["car"+who].pointRight);
   _root["car"+who].pointFront = {x:0, y:-25};
   _root["car"+who].localToGlobal(_root["car"+who].pointFront);
   _root["car"+who].pointBack = {x:0, y:25};
   _root["car"+who].localToGlobal(_root["car"+who].pointBack);
   //mari kita gunakan beberapa nama variabel lebih pendek:) - ini hanya
   untuk pemahaman yang lebih baik dan untuk menyederhanakan kode
   this["lpx"+who] = _root["car"+who].pointLeft.x;
   this["lpy"+who] = _root["car"+who].pointLeft.y;
   this["rpx"+who] = _root["car"+who].pointRight.x;
   this["rpy"+who] = _root["car"+who].pointRight.y;
   this["fpx"+who] = _root["car"+who].pointFront.x;
   this["fpy"+who] = _root["car"+who].pointFront.y;
   this["bpx"+who] = _root["car"+who].pointBack.x;
   this["bpy"+who] = _root["car"+who].pointBack.y;
   //memeriksa tabrakan - kami memeriksa tabrakan menggunakan Flash dibangun
   dalam metode hitTest. Metode ini dapat digunakan untuk membandingkan x
   dan y koordinat untuk bentuk atau kotak berlari dari contoh yang
   ditentukan (dalam kasus kami _root.terrain), sesuai dengan bentuk bendera
   (parameter ketiga: benar-bentuk / palsu - bounding box) pengaturan atau
   untuk memeriksa apakah kotak melompat-lompat dari target dan tumpang
   tindih contoh ditentukan. Kami menggunakan yang pertama.
   if (_root.terrain.hitTest(this["lpx"+who], this["lpy"+who], true)) {
           //steer right
           _root["car"+who]._rotation += 5;
           //speed penalty
           this["speed"+who] *= 0.85;
   }
   if (_root.terrain.hitTest(this["rpx"+who], this["rpy"+who], true)) {
           //steer left
           _root["car"+who]._rotation -= 5;
           //speed penalty
           this["speed"+who] *= 0.85;
   }
   if (_root.terrain.hitTest(this["fpx"+who], this["fpy"+who], true)) {
           //stop the car
           this["speed"+who] = -1;
   }
   if (_root.terrain.hitTest(this["bpx"+who], this["bpy"+who], true)) {
           //stop the car
           this["speed"+who] = 1;
   }
    Keterangan : Tanda // bukan termasuk yang dibaca oleh script akan tetapi hanya keterangan saja 
Mana kita berjalan? 
 
1. Sampai sekarang kami memiliki mesin permainan 100% fungsional tapi tidak ada permainan. Kami 
tidak memiliki tujuan. Jadi kita harus menambahkan satu dan karena tutorial ini adalah tentang 
permainan balap time trial kita akan menambahkan lap dan timer. 
2. Download dan buka file racing_part1_step3.fla. 
3. Anda melihat bahwa saya menambahkan dua frame pada setiap lapisan dan saya diberi label mereka 
"set siap", "pergi" dan "selesai". Dalam bingkai pertama klip video akan bermain mengatakan "siap, 
mengatur, pergi". Ketika "pergi" ditampilkan _root akan pindah ke frame berlabel "pergi" di mana mobil 
bisa bergerak. 
Mengapa mobil tidak akan bergerak di frame pertama? Nah, itu karena "langkah" movieklip hanya ada 
di frame kedua, jadi di situlah "langkah" fungsi akan dieksekusi. 
Pada frame kedua dari lapisan "tindakan" Anda juga akan menemukan dua variabel baru. Variabel‐
variabel tersebut akan digunakan untuk menyimpan waktu yang tepat ketika balapan dimulai 
(initialTime |) dan waktu yang tepat ketika putaran saat ini dimulai (lapTime). 
Ketika permainan berakhir, setelah pemain selesai sepuluh lap, _root akan pindah ke frame "selesai" di 
mana sebuah MovieClip informasi akan ditampilkan. 
4. OK! Apa yang perlu kita lakukan selanjutnya adalah menentukan apakah pemain telah selesai satu 
putaran atau tidak, jadi kita akan menambahkan dua movieklip (garis merah di sisi kanan) dan 
memeriksa apakah mobil "menyentuh" movieklip ini, dan jika itu terjadi, dari Anda tahu bahwa satu 
putaran selesai ... hmm ... tidak benar‐benar:) 
Pertama‐tama mobil akan "sentuhan" movieklip ini selama lebih dari satu frame. Mungkin bagi dua, 
mungkin selama sepuluh, mungkin untuk seratus frame, Anda tidak dapat menentukan jumlah ini 
karena tergantung pada kecepatan mobil. Dan bukannya meningkatkan jumlah lap dengan satu, Anda 
akan meningkatkan dengan putaran dua, sepuluh atau seratus, sehingga perlombaan akan siap cukup 
cepat. 
Masalah kedua, dengan asumsi bahwa Anda memecahkan salah satu pertama adalah bahwa seorang 
pemain akan pergi melewati garis finish (garis merah di sebelah kanan) dan kemudian segera kembali ke 
garis yang sama dan "sentuhan" lagi, meningkatkan jumlah lap bahkan meskipun putaran tidak selesai. 
Masalah ini dapat diselesaikan dalam beberapa cara tetapi kami akan memilih solusi yang perbaikan 
kedua masalah kita: kita akan menambahkan sebuah pos pemeriksaan (garis merah ke kiri). Pos ini akan 
ditempatkan di suatu tempat sekitar pertengahan balapan sehingga pemain akan kehilangan lebih 
banyak waktu kembali ke garis finish daripada dia akan kehilangan dengan menyelesaikan putaran. 
Tentu saja jika Anda ingin ras yang lebih aman Anda akan menambahkan lebih dari satu pos 
pemeriksaan. Anda akan dapat dengan mudah menambahkan pos pemeriksaan lagi setelah 
menyelesaikan tutorial ini. 
5. Buka jendela tindakan untuk frame pertama dari layer "tindakan". Kita harus fungsi baru baik yang 
terkait dengan waktu balapan ‐ setTimes (menghitung dan menetapkan waktu perlombaan total) dan 
setBestLap (menghitung dan menetapkan waktu putaran terbaik). Kami akan membawa mereka satu 
per satu dan melihat apa yang mereka lakukan. 
  function setTimes() {
          //kita menghitung waktu yang telah berlalu dari saat lomba dimulai
  pada milidetik
          timeElapsed = getTimer()-_root.initialTime;
          //kita menghitung menit, detik dan puluhan detik dan mengatur
  mereka untuk variabel masing-masing
          milliseconds = timeElapsed;
          seconds = Math.floor(milliseconds/1000);
          minutes = Math.floor(seconds/60);
            minutesTXT = minutes;
            secondsTXT = seconds-minutes*60;
            tensTXT = Math.round((milliseconds-seconds*1000)/10);
            //jika menit, detik atau puluhan jumlah detik hanya memiliki satu
    karakter kita menambahkan "0" sebelum itu - itu hanya karena kita ingin
    waktu untuk melihat baik ;)
            if (minutesTXT<10) {
                    minutesTXT = "0"+minutesTXT;
            }
            if (secondsTXT<10) {
                    secondsTXT = "0"+secondsTXT;
            }
            if (tensTXT<10) {
                    tensTXT = "0"+tensTXT;
            }
            //kita meletakkan semua tiga variabel dalam satu yang akan
    digunakan dalam tabel timer
            _root.totalTimeTXT = minutesTXT+"."+secondsTXT+"."+tensTXT;
    }
    //dan fungsi kedua
    function setBestLap() {
            //fungsi ini melakukan hal yang sama persis seperti yang pertama,
    hanya di sini kita akan menggunakan waktu yang telah berlalu dari saat
    terakhir mobil telah melewati garis finish
            bestTime = getTimer()-_root.lapTime;
            milliseconds = bestTime;
            //kita tidak menghitung waktu putaran jika mobil melewati garis
    finish / start untuk pertama kalinya
            if (oldMilliseconds>milliseconds || oldMilliseconds == null) {
                    oldMilliseconds = milliseconds;
                    seconds = Math.floor(milliseconds/1000);
                    minutes = Math.floor(seconds/60);
                    minutesTXT = minutes;
                    secondsTXT = seconds-minutes*60;
                    tensTXT = Math.round((milliseconds-seconds*1000)/10);
                    if (minutesTXT<10) {
                            minutesTXT = "0"+minutesTXT;
                    }
                    if (secondsTXT<10) {
                            secondsTXT = "0"+secondsTXT;
                    }
                    if (tensTXT<10) {
                            tensTXT = "0"+tensTXT;
                    }
                    _root.bestLapTXT = minutesTXT+"."+secondsTXT+"."+tensTXT;
            }
            //kita mengatur waktu awal untuk saat mobil melewati garis finish
            _root.lapTime = getTimer();
    }
    Keterangan : Tanda // bukan termasuk yang dibaca oleh script akan tetapi hanya keterangan saja 
 
 
 
 
6. Dan sekarang sekali lagi (saya berjanji ini adalah terakhir kalinya) kembali ke fungsi "langkah" dan 
mari kita menganalisa baris baru. 
  //pos pemeriksaan
  //kita periksa untuk melihat apakah mobil "menyentuh" pos pemeriksaan
  saat ini (pos pemeriksaan saat ini, dalam hal ini, dapat checkpoint1 atau
  checkpoint2 karena kita hanya memiliki dua pos pemeriksaan; checkpoint1
  adalah garis start / finish)
  if
  (_root["car"+who].hitTest(_root["checkpoint"+_root["currentCheckpoint"+wh
  o]])) {
          //jika pos pemeriksaan saat ini adalah pos pemeriksaan terakhir -
  mengatur pos pemeriksaan berikutnya ke awal baris
          if (_root["currentCheckpoint"+who] == 1) {
                  // jika putaran saat ini tidak 0 kita memeriksa apakah ini
  adalah putaran terbaik
                  if (_root["currentLap"+who] != 0) {
                          _root.setBestLap();
                  }
                  //jika ini adalah lap terakhir, _root akan pindah ke frame
  "selesai"
                  if (_root["currentLap"+who] == _root.totalLaps) {
                          _root.gotoAndStop("finish");
                  } else {
                          _root["currentLap"+who]++;
                  }
                  _root.currentLapTXT = _root["currentLap"+who]+"/10";
          }
          // kita set ke pos pemeriksaan untuk diperiksa ke pos pemeriksaan
  berikutnya
          _root["currentCheckpoint"+who]++;
          //jika pos pemeriksaan saat ini adalah pos pemeriksaan terakhir -
  mengatur pos pemeriksaan berikutnya ke awal baris
          if (_root["currentCheckpoint"+who]>_root.checkpoints) {
                  _root["currentCheckpoint"+who] = 1;
          }
  }
 
 
7. Itu saja:) Sekarang mari kita beralih ke sentuhan grafis akhir dan melihat permainan kami selesai. 
 
Menyelesaikan permainan 
 
1. Sentuhan grafis akhir ... Yah, tidak ada untuk menjelaskan di sini. Anda dapat mengekspresikan diri 
dengan cara apapun dan membuat grafik setelah selera Anda sendiri. 
Hanya ingat untuk mengatur alpha klip video hijau dan klip film merah untuk 0. 
2. Ini adalah file yang disediakan racing_part1_step4.fla dengan tutorial ini. Download! 
3. Ingatlah bahwa ini hanyalah tutorial. Anda harus bekerja di dalamnya dalam rangka membangun 
suatu permainan benar‐benar adiktif. Dalam tutorial berikutnya kita akan menambahkan lawan dalam 
permainan. Sampai saat itu, bersenang‐senang membangun Time Trial Anda Permainan Balap ;) 

				
DOCUMENT INFO
Shared By:
Stats:
views:2680
posted:10/12/2011
language:Indonesian
pages:11
Description: Created by : Shandy Dimas Jenis Permainan : Race(Balapan) Program : Adobe Flash CS3 Professional Macromedia Flash 8 Waktu Penyelesaian : 1 Jam (Tingkat Menengah)