ActionScript adalah bahasa pemrograman yang bagus untuk membuat game.
Sangat mudah untuk
belajar, cepat untuk mengembangkan dengan, dan sangat kuat.
Kita mulai dengan melihat ActionScript 3.0 dan Flash Professional CS5 pada lingkungan yang asli. Kemudian, kita membangun beberapa program sederhana untuk lebih terbiasa dengan versi baru dari ActionScript.
Apakah itu ActionScript 3.0?
ActionScript 3.0 diperkenalkan pada tahun 2006 dan telah menjadi bahasa pemrograman utama untuk Flash sejak saat itu. Versi asli dari ActionScript diperkenalkan pada tahun 1996 dengan rilis dari Flash 4. Sebelumnya tidak disebut dengan ActionScript, dan Anda bahkan tidak bisa mengetikkan jenis kode Anda. Sebaliknya, Anda memilih pernyataan dari serangkaian menu drop- down.
Flash 5 pada tahun 2000 meningkat secara baik pada pengenalan formal dengan ActionScript 1,0. Ini bahasa scripting berisi semua fitur-fitur yang berlebihan yang merupakan pengembangan berbasis bahasa web, seperti Lingo Macromedia Director dan Sun Java. Tapi, hal tersebut hadir secara mendadak dengan kecepatan dan kekuatan.
Flash MX 2004, juga dikenal sebagai Flash 7, membawa kita ActionScript 2.0, yang jauh lebih kuat versi bahasa pemogramannya yang membuat lebih mudah untuk membuat program berorientasi objek. Ini jauh lebih dekat dengan ECMA Script, sebuah standar untuk bahasa pemrograman yang dikembangkan oleh Asosiasi Produsen Komputer Eropa (Europe Computer Programming Association). JavaScript, bahasa pemrograman yang digunakan di browser, juga didasarkan pada ECMA Script.
ActionScript 3.0 adalah puncak dari tahun pembangunan. Karena setiap versi Flash keluar, pengembang mendorongnya untuk membatasi. Versi berikutnya memperhitungkan bagaimana pengembang yang menggunakan Flash dan apa kelemahan dari versi ActionScript saat ini. Sekarang kita memiliki lingkungan pengembangan yang sangat baik untuk pengembangan game 2D. Anda akan menemukan bahwa salah satu kekuatan utamanya adalah mampu untuk mendapatkan game dan berjalan dengan hanya sedikit kode.
CATATAN Flash Player memiliki dua kode penerjemah yang terpisah yang dibangun untuk itu. Yang pertama adalah untuk konten yang tua dan akan menafsirkan kode ActionScript 1.0/2.0. Yang kedua adalah juru kode lebih cepat yang bekerja dengan ActionScript 3.0. Anda mendapatkan kinerja terbaik dari permainan Anda jika Anda tetap hanya menggunakan kode ActionScript 3.0.
Membuat Sebuah Program ActionScript Sederhana Source Files
http://flashgameu.com
A3GPU201_HelloWorld.zip Saat memperkenalkan bahasa pemrograman baru, adalah sebuah tradisi untuk memulai dengan program Hello Word. Idenya adalah dengan hanya menulis sebuah program yang tidak apa-apa selain menampilkan kata Hello World di layar
Penggunaan Sederhana dari Trace
Kita dapat membuat versi terbatas Hello World dengan menggunakan function trace di script di timeline utama. Semua jejak itu adalah output beberapa teks ke dalam panel output Flash.
Untuk membuat film Flash yang baru, pilih File, New dari menu. Anda akan disajikan dengan jendela New Document terlihat pada Figure 1.1.
CATATAN Flash Professional CS5 sebenarnya flash 11. Adobe telah dibundel bersama-sama berbagai versi potongan perangkat lunak seperti Flash, PhotoShop, Illustrator, dan Dreamweaver ke dalam paket mereka "CS5". Jumlah teknis versi Flash di CS5 adalah Flash 11. Hal ini benar untuk menyebutnya sebagai baik flash 11 atau Flash CS5. Pemutaran mesin dipasang di browser menggunakan skema penomoran yang berbeda dan versi 10 dari Flash Player.
CATATAN Program Hello World dimulai pada 1974 ketika itu termasuk dalam tutorial internal yang dokumen di Bell Labs. Ini adalah program pertama yang saya pelajari ketika saya duduk di depan PDP-11 terminal di sekolah di akhir 70-an. Hampir setiap buku pengantar pemrograman memiliki contoh Hello World di awal.
Figure 1.1 Pilih ActionScript 3.0 Untuk membuat sebuah Flash Movie baru
Setelah mengklik OK, Anda akan memperoleh Flash movie baru dengan nama Untitled-1. Ini akan terlihat sebagai Flash dokumen saat ini, seperti yang terlihat pada Figure 1.2
Figure 1.2 Halaman dokumen Flash termasuk timeline dan sebuah stage area kerja. Disana terdapat banyak cara untuk mengkonfigurasi ruang lingkup Flash, sehingga panel Anda mungkin dapat berada dalam lokasi yang berbeda.
Bagian atas jendela dokumen termasuk timeline, dengan frame dimulai dengan 1 dan melebar ke kanan lebih kurang dari 50 frame dapat dilihat pada Gambar 1.2, meskipun hal ini tergantung pada ukuran jendela. Jumlah frame dapat diperpanjang sejauh kebutuhan animator, tetapi sebagai game programmer, kita biasanya hanya perlu beberapa frame untuk membangun permainan kami. Timeline dapat memiliki satu atau lebih lapisan di dalamnya. Secara dasarnya, ada satu lapisan, bernama Layer 1, di jendela. Pada layer 1, Anda melihat sebuah keyframe tunggal, diwakili oleh sebuah kotak dengan titik kosong di bawah frame nomor 1.
.
trace("Hello World."); Anda dapat menempatkan script di setiap keyframe dalam setiap lapisan timeline. Untuk melakukan ini, pilih keyframe, pilih menu Window, kemudian pilih Tindakan. Tombol ini menampilkan panel Actions. Anda dapat melihat hasil pada Figure 1.3. Ini mungkin terlihat berbeda untuk Anda karena dapat disesuaikan dalam berbagai cara, termasuk memiliki set perintah penuh ActionScript dan function dalam menu di sisi kiri. Figure 1.3 Panel Tindakan juga dapat diakses oleh cara pintas keyboard Alt + F9 (Windows) atau Option + F9 (Mac).
Panel Tindakan ini pada dasarnya hanya sebuah jendela teks-entri. Namun, dapat melakukan jauh lebih banyak untuk Anda, seperti membantu Anda memformat kode Anda. Kami tidak menggunakan panel Actions banyak untuk karena tujuan dari buku ini sebagian besar kode kita berada di class eksternal. Untuk membuat program yang sederhana Hello World, masukkan teks berikut ke dalam panel Action:
trace ("Hello World.");
Itu saja. Anda telah membuat program yang pertama Anda ActionScript 3.0. Untuk mengujinya, pilih Control, Test Movie, Test atau gunakan shortcut Command + Return pada Mac atau Ctrl + Enter pada Windows. Jika Anda tidak membangun film sendiri, Anda dapat membuka HelloWorld1.fla dan menggunakan file ini untuk mengujinya.
CATATAN Keyframe adalah istilah animasi. Jika kita belajar animasi dengan Flash, bukan belajar program, kita akan menggunakan keyframes sepanjang waktu. Pada dasarnya, sebuah keyframe ini adalah titik dalam timeline di mana posisi dari satu atau lebih elemen animasi secara khusus ditetapkan. Antara keyframes, elemen akan berubah posisi. Untuk misalnya, jika ada sebuah keyframe pada frame 1 dimana sebuah elemen di sisi kiri layar dan sebuah keyframe pada frame 9 dimana elemen yang sama di sisi kanan layar, di antara keyframes, pada frame 5, elemen akan muncul di tengah layar.
Kami tidak menggunakan keyframes untuk animasi, melainkan menggunakannya untuk menempatkan elemen pada layar dalam modus yang berbeda: seperti intro, bermain, dan gameover.
Sekarang, mencari panel output. Tampaknya, bahkan jika Anda memiliki panel yang tertutup. Tapi, itu cenderung menjadi panel kecil, sehingga dengan mudah bisa muncul di sudut layar Anda tanpa Anda ihat. Bahkan mungkin muncul dalam satu set panel bersama dengan timeline, untuk Misalnya, Figure 1.4 menunjukkan apa yang seharusnya terlihat. Figure 1.4 Panel Output menunjukkan hasil dari function panggilan trace
Meskipun program Hello World ini secara teknis tidak menghasilkan "Hello World," itu dapat terjadi hanya saat Anda menguji film di Flash CS5. Jika Anda menanamkan film ini dalam browser, itu tidak akan menunjukkan apa-apa di layar. Kita perlu untuk melakukan sedikit lebih banyak pekerjaan untuk menciptakan Program Hello World sesungguhnya. Membuat Keluaran pada Layar Untuk memiliki tampilan kata Hello World di layar, kita membutuhkan lebih dari satu baris kode. Pada kenyataannya, kita membutuhkan tiga.
Baris pertama menciptakan area teks baru yang akan ditampilkan pada layar, yang disebut kolom teks. Ini adalah wadah untuk menampung teks.
Baris kedua tempat kata-kata Hello World ke dalam kolom teks.
Kemudian, baris ketiga menambahkan bahwa bidang teks ke stage. Stage area tampilan dari sebuah Flash movie. Anda dapat mengatur unsur-unsur di atas stage sementara film diautorisasi. Selama pemutaran, stage adalah area yang terlihat oleh pengguna.
Dalam ActionScript 3.0, membuat objek seperti kolom teks tidak menambahkan mereka ke stage. Anda perlu melakukannya sendiri. Ini biasanya dapat berguna kemudian, ketika Anda ingin sekelompok objek bersama-sama dan tidak memiliki semua yang ditempatkan langsung di atas stage.
CATATAN Setiap elemen visual dalam ActionScript 3.0 disebut objek layar. Ini bisa menjadi kolom teks, elemen grafis, tombol, atau bahkan komponen antarmuka pengguna (seperti pop-up menu). Menampilkan objek juga dapat koleksi benda display lainnya. Misalnya, menampilkan objek dapat menahan semua bagian dalam permainan catur, dan papan catur lain menampilkan objek di bawahnya. Tahap itu sendiri adalah objek layar, sebenarnya adalah tampilan objek dikenal sebagai klip video (movie clip)
Berikut adalah tiga baris kode untuk program Hello World baru kami. ini hanya mengganti satu baris kode dalam frame 1 dari timeline dari contoh sebelumnya:
var myText:TextField = new TextField(); myText.text = "Hello World"; addChild(myText);
Kode menciptakan variabel bernama myText dari tipe TextField. Ini kemudian menetapkan teks properti dari bidang teks ke "Hello World" sebelum menambahkannya sebagai turunan dari layar stage objek.
Kata kunci var sebelum penggunaan pertama dari variabel myText memberitahu compiler bahwa kita membuat sebuah variabel bernama myText, lorong besar dan jenis, TextField, memberitahu compiler apa jenis nilai variabel ini yang dipegang (dalam hal ini, referensi ke bidang teks).
Hasil dari program ini adalah "Hello World" kecil pada standar font serif pada upperleft pada sudut layar. Pilih Control, Test Movie untuk melihatnya. File sumber HelloWorld2.fla. Gambar 1.5 menunjukkan bidang ini teks kecil yang kita buat
Figure 1.5 Jendela menunjukkan "Hello World yang kecil di kiri atas.
Alasan teks muncul di kiri atas dan bahwa font tertentu adalah bahwa kita belum mengatur properti lain dari text field. Setelah kita belajar sedikit lagi, kita dapat mengatur teks lokasi, ukuran, dan font.
CATATAN Saat mengetik kode ini, Flash secara otomatis akan menyisipkan satu baris di bagian atas Anda script: import flash.text.TextField;. Hal ini karena segera setelah itu terlihat Anda menggunakan objek TextField yang mengasumsikan Anda ingin memasukkan bagian dari perpustakaan ActionScript 3.0 ke film Flash Anda. Dengan itu yang termasuk, Anda dapat membuat objek TextField.
Class ActionScript 3.0 Pertama Kami
Kami tidak menggunakan script pada timeline kecuali kita memiliki sesuatu yang dibutuhkan khusus untuk dilakukan pada frame tertentu dalam timeline. Untuk sebagian besar, kode kita ada di file class ActionScript eksternal.
Jadi, mari kita kembali program Hello World sebagai class eksternal.
Untuk membuat file ActionScript eksternal, pilih File, New, dan pilih ActionScript 3.0 Class. Anda mungkin akan diminta untuk menentukan nama untuk class, jadi ketiklah HelloWorld3.
Selanjutnya akan membuka jendela dokumen ActionScript baru yang menempati ruang yang sama sebagai halaman dalam Flash movie. Alih-alih timeline dan area kerja stage, namun, kita hanya memiliki area pengeditan teks yang besar, seperti yang ditunjukkan pada Figure 1.6.
Figure 1.6 Dokumen ActionScript berisi program Hello World sederhana.
Seperti yang dapat Anda lihat pada Figure 1.6, program ini jauh lebih panjang dari tiga baris program Hello World yang kita buat sebelumnya. Mari kita lihat apa setiap bagian dari kode tersebut. Sebuah file class dimulai dengan menyatakan bahwa itu adalah paket yang berisi class. Kemudian, harus mendefinisikan apa bagian dari ActionScript yang diperlukan dalam program ini. Dalam hal ini, kita perlu menampilkan objek di atas stage dan menciptakan kolom teks. Hal ini membutuhkan penggunaan flash.display class dan class-class flash.text:
flash.display classes and the flash.text classes: package { import flash.display.*; import flash.text.*;
CATATAN Sebuah class (class) adalah cara lain untuk mengacu pada objek Flash, seperti elemen grafis atau film itu sendiri. Kami juga sering merujuk pada class sebagai bagian kode objek. Jadi Anda memiliki film dan film class. Hal ini akan menentukan data apa yang terkait dengan film dan apa fungsi yang dapat melakukan. Dalam film ini, Anda mungkin memiliki klip video elemen dalam perpustakaan dan klip video yang memiliki class sendiri yang mendefinisikan apa yang dapat dilakukan.
Baris berikutnya dari kode adalah definisi class. Dalam hal ini, perlu class publik, yang berarti bahwa hal itu dapat diakses oleh film utama. Nama class adalah HelloWorld3, yang harus sesuai dengan nama dari file, yang HelloWorld3.as. Class ini meluas MovieClip, yang berarti bekerja dengan movie clip (dalam hal ini, stage itu sendiri):
public class HelloWorld3 extends MovieClip {
Class berisi function tunggal. Nama function ini HelloWorld3, yang sama persis dengan nama class. Ketika suatu function bernama sama dengan nama class , itu dilakukan sesegera mungkin begitu class diinisialisasi. Ini disebut function konstruktor.
Dalam hal ini, class melekat pada film, sehingga function ini berjalan segera setelah film ini diinisialisasi.
Di dalam function tersebut adalah tiga baris kode yang sama kita gunakan pada contoh sebelumnya:
public function HelloWorld3() { var myText:TextField = new TextField(); myText.text = "Hello World!"; addChild(myText); } } } Untuk mendapatkan kode ini bekerja di film, Anda perlu membuat sebuah film baru yang segar. Contoh disebut HelloWorld3.fla. Film ini tidak perlu memiliki apa pun di timeline sama sekali, tetapi harus diberi class dokumen. Hal ini mengindikasikan bahwa File ActionScript mengontrol film.
Untuk mengatur class dokumen, lihatlah panel Properties yang biasanya muncul saat Anda pilih tahap Flash movie. Jika Anda tidak melihatnya, Anda dapat mengambilnya dengan memilih Window, Properties. Anda melihat panel yang ditunjukkan pada Figure 1.7 di sebelah kanan. Kemudian, masukkan nama class HelloWorld3 ke bidang class dokumen.
CATATAN Anda dengan cepat perlu untuk mengetahui class apa yang perlu untuk diimpor pada saat permulaan program Anda. Disana hanya terdapat dua dari segelintir yang kami gunakan dalam keseluruhan buku. Untuk sesuatu fungsi ActionScripts yang tidak biasa, Anda dapat selalu melihat dalam masukan bantuan Flash untuk melihat fungsi-fungsinya dimana class perpustakaan dapat diimpor.
Figure 1.7 Class document Pada film ini diset Sebagai HelloWorld
Sekarang dalam film mengetahui bahwa hal tersebut harus memuat dan menggunakan file HelloWorld3.as. ketika Anda menguji film, dia mengkompilasi file class AS menjadi film. Menjalankan film akan menginisialisasi class, yang akan menjalankan function HelloWorld3 dan menampilkan teks "Hello World.
Bekerja dengan Flash CS5
Meskipun sebagian besar pekerjaan kami adalah dalam ActionScript, kita perlu tahu beberapa istilah dan beberapa dasar-dasar tentang bekerja dengan Flash CS5 timeline, stage, dan perpustakaan.
Tampilan Objek dan Daftar Tampilan
Kita sudah membahas tampilan objek. Mereka pada dasarnya merupakan elemen grafis. Kebanyakan paling serbaguna dari semua tampilan obyek adalah movie clip, yang merupakan elemen grafis yang mencakup sejumlah objek tampilan lain, ditambah timeline untuk animasi.
Sebuah versi sederhana dari movie clip adalah sprite. Sprite pada dasarnya adalah sebuah movie clip dengan hanya satu frame. Ketika kita membuat objek tampilan dari awal dalam ActionScript, kita biasanya membuat sprite. Mereka secara alami lebih efisien daripada movie clip karena mereka tidak memiliki overhead dari beberapa frame animasi.
Tampilan objek lainnya sudah termasuk hal-hal seperti bidang teks, bitmap, dan video.
Beberapa tampilan objek, seperti movie clip dan sprite, dapat memiliki tampilan benda-benda lain di dalamnya. Misalnya, Anda dapat memiliki sebuah sprite yang berisi beberapa sprite lainnya, serta beberapa bidang teks dan bitmap.
CATATAN Jika Anda baru ke Flash, lihatlah "Menggunakan Flash (using Flash)" dalam dokumentasi Bantuan. Bagian tersebut memberikan penjelasan rinci panggung, timeline, perpustakaan, dan Flash lainnya elemen ruang kerja dan memberitahu Anda bagaimana untuk menangani antarmuka Flash.
Tampilan objek bersarang memberikan Anda sebuah cara untuk mengatur elemen grafis Anda. Untuk misalnya, Anda dapat membuat sprite permainan tunggal untuk menampung semua elemen permainan yang Anda buat dengan ActionScript. Kemudian, Anda bisa memiliki latar belakang dalam sprite itu yang berisi latar belakang beberapa elemen sprite. Sebuah permainan potongan sprite bisa berada di atas itu dan berisi potongan permainan bergerak.
Karena movie clip dan sprite dapat berisi beberapa objek, masing-masing dari mereka mempertahankan daftar barang-barang untuk menentukan urutan di mana mereka ditampilkan. Hal ini disebut daftar tampilan. Kita dapat memodifikasi daftar tampilan untuk menempatkan benda di depan atau di belakang benda lainnya.
Kita juga dapat memindahkan benda dari satu tampilan objek utama ke yang lain. Hal ini tidak membuat sebuah salinan dari objek, tetapi benar-benar menghapus dan menambahkan lagi. Hal ini membuat tampilan objek menjadi sangat fleksibel dan mudah untuk dikerjakan . Stage
Stage adalah area kerja grafis utama dalam Flash. Ini adalah representasi dari layar yang dilihat oleh pengguna ketika mereka sedang bermain permainan.
Figure 1.2 menunjukkan halaman dokumen dengan stage yang mengambil sebagian besar ruang. Ini juga menunjukkan timeline di bagian atas.
Banyak permainan kami yang memiliki stage benar-benar kosong dan waktu kosong. Semua elemen grafis dibuat oleh kode ActionScript.
Namun, banyak permainan memiliki unsur-unsur grafis sudah duduk di atas stage. Hal ini penting terutama ketika seorang desainer grafis nonprogrammer terlibat dalam membuat permainan. Perancang mungkin ingin untuk meletakkan elemen-elemen antarmuka dan menyesuaikannya selama pembangunan. Ini sama sekali tidak praktis untuk memiliki elemen- elemen yang dibuat oleh ActionScript dalam kasus-kasus seperti ini.
Selama pengembangan, stage dapat digunakan sebagai tempat untuk menciptakan elemen grafis dengan cepat. Misalnya, Anda dapat menggambar menggunakan alat gambar di atas stage, pilih bentuk, dan kemudian tekan F8 untuk membuat movie clip singkat di perpustakaan.
Perpustakaan
Perpustakaan flash berisi media apapun yang Anda butuhkan dalam permainan Anda dan dibundel ke file akhir SWF. Anda juga dapat mengimpor elemen media lain ke dalam film Anda, seperti Anda lihat pada saat kita mengimpor gambar bitmap eksternal dalam Bab 6, Picture Puzzles: : Sliding dan Jigsaw. "
Figure 1.8 menunjukkan panel perpustakaan. Sebagian besar item di perpustakaan adalah movie clips. Item pertama adalah sebuah tombol, dan beberapa yang ada di folder Sounds adalah suara- suara.
Figure 1.8 Panel Perpustakaan menunjukkan semua objek media tersimpan di dalam film saat itu.
Pada Figure 1.8, beberapa movie clip memiliki nama di kolom Linkage. ini adalah item yang dapat ditarik dari perpustakaan dengan kode ActionScript kita pada saat dijalankan.
Timeline
Sebuah Flash movie dipecah menjadi frame. Timeline di bagian atas jendela memungkinkan Anda untuk memilih frame yang ditampilkan di area kerja stage pada bagian bawah jendela. Karena kita tidak memproduksi animasi, tapi aplikasi permainan, kita menggunakan frame untuk membedakan antara layar permainan yang berbeda.
Figure 1.9 memperlihatkan timeline. Hanya tiga frame sedang digunakan. Mereka semua adalah keyframes. Yang pertama adalah untuk layar pengenalan permainan dan berisi beberapa petunjuk. Yang kedua adalah bingkai di mana permainan ini dimainkan. Yang ketiga adalah pesan "Game Over" dan tombol Play Again
Figure 1.9 Timeline telah telah sedikit diperluas menggunakan menu pull-down di sebelah kanan, sehingga frame adalah sedikit lebih besar.
Setiap keyframe memiliki label, meskipun Anda tidak bisa melihatnya di timeline. Anda dapat melihat bendera kecil di lapisan atas dari setiap frame, yang menandakan bahwa ada label sana. Untuk melihat dan mengatur frame label, Anda perlu memilih frame, dan kemudian memeriksa Properti panel. Ini berisi field Frame. Dalam hal ini, telah diatur untuk "mulai", dan Anda dapat mengedit jika Anda membutuhkan (lihat Gambar 1.10).
Figure 1.10 Panel Properties memungkinkan Anda untuk mengatur atau mengubah label bingkai.
Jika Anda melihat kembali Figure 1.9, Anda dapat melihat bahwa ada empat lapisan. Lapisan pertama, Label, berisi tiga keyframes. Cara Anda membuat frame dan keyframes adalah dengan menggunakan F5 untuk menambahkan bingkai ke lapisan, dan kemudian F7 untuk menambahkan keyframe di antara mereka frame.
Lapisan kedua, bernama Score, berisi hanya dua keyframes, frame 1 dan 2. Jadi, bingkai 3 adalah hanya sebuah perpanjangan dari frame 2. Ini berarti elemen score hadir selama permainan dimainkan pada frame 2 masih ada pada frame 3.
Timeline, stage, dan perpustakaan adalah alat utama Anda visual untuk mengembangkan permainan Anda.
Menulis dan Mengedit ActionScript
Meskipun biasanya agak diperlukan untuk bekerja dalam dokumen Flash untuk menciptakan permainan, kita menghabiskan sebagian besar waktu kita di jendela dokumen ActionScript.
Kami melihat jendela ini dalam figure 1.6, tapi figure 1.11 menunjukkan hal berbeda. Di sebelah kiri adalah menu hirarkis sintaks ActionScript 3.0
Figure 1.11 Jendela ActionScript dokumen memiliki banyak peralatan yang berguna di bagian atasnya
Di bagian atas jendela, Anda melihat dua tab. Itu karena dua dokumen terbuka: HelloWorld3.fla dan HelloWorld3.as. Hal ini memungkinkan Anda untuk bekerja pada Flash movie dan dokumen ActionScript pada waktu yang bersamaan. Anda dapat beralih di antara mereka dengan mengklik tab. Anda juga dapat memiliki file ActionScript lainnya terbuka, yang membuktikan berguna jika Anda bekerja dengan class ActionScript beberapa pada saat yang sama.
Perhatikan pada Figure 1.11 bahwa garis-garis kode yang indentasi. Cara yang tepat untuk melakukan ini adalah dengan menggunakan tombol Tab. Ketika Anda tekan Return atau Enter di akhir baris kode, kursor secara otomatis muncul indentasi ke tingkat yang tepat di baris berikutnya. Jika Anda ingin menghapus Tab berhenti untuk menarik garis lebih dekat ke kiri, tekan Delete atau Shift+Tab.
Peralatan baris skrip jendela di atas melakukan berbagai function yang ActionScript setiap programmer harus tahu bagaimana menggunakan. Berikut adalah daftar (seperti yang ditunjukkan di jendela, dari kiri ke kanan):
Add A New Item to the Script-Ini adalah menu drop-down besar yang memberikan Anda akses ke setiap perintah ActionScript. Ada begitu banyak sehingga sulit untuk digunakan untuk perintah standar, tetapi dapat berguna untuk menemukan yang lebih jelas.
Find-Gunakan ini untuk membuka Cari (find) dan Ganti (replace) kotak dialog. Anda juga dapat menggunakan Perintah F (Mac) atau Ctrl F (Windows).
Check Syntax-Ini adalah cara yang berguna untuk memiliki compiler Flash manakah precheck sebuah pada sintaks dari naskah Anda. Anda dapat melihat hasilnya di panel output.
Auto Format-Perintah ini mengambil seluruh script Anda dan memformat dengan tabbing konsisten, spasi, dan tanda kurung. Jika Anda memutuskan untuk menggunakan ini, pastikan untuk mengunjungi Preferensi untuk Auto Format untuk membuat beberapa keputusan tentang apa tombol ini harus dan tidak harus dilakukan.
CATATAN Anda juga dapat memilih bagian dari kode dan tekan Tab untuk memindahkan semua ke kanan dengan satu Tab berhenti. Anda dapat shift Tab untuk memindahkan seluruh bagian ke kiri juga.
Show Code Hint-Ini mungkin yang paling berguna dari semua tombol. Ketika Anda mulai mengetik sebuah function, seperti gotoAndStop (), Anda mendapatkan petunjuk kode yang langsung muncul membiarkan Anda tahu apa parameter function menerima. Namun, jika Anda ingin mengedit function panggilan kemudian, Anda dapat menempatkan kursor di dalam parameter function dan kemudian menggunakan tombol ini untuk membawa kembali petunjuk.
Debug Options- menu drop-down ini memungkinkan Anda untuk mengatur dan menghapus breakpoints. Kami membahas debugging nanti dalam bab ini dalam bagian Pengujian dan Debugging "
Collapse Between Braces-Jika Anda mengklik tombol ini, bagian awal saat kode, antara kurung kurawal, diurutkan untuk satu baris. Kode ini masih ada, tapi tersembunyi. Anda dapat klik pada tanda segitiga (Mac) atau plus (Windows) untuk sisi kiri dari jendela atau tombol Perluas Semua untuk memperluas itu. Gambar 1.12 menunjukkan apa tampak seperti ketika beberapa kode telah berkembang.
Figure 1.12 Sekumpulan kode telah berkembang. Ini terjadi apabila Anda memiliki banyak skrip dan ingin menyembunyikan bagian dari kode yang tidak begitu bekerja dengan baik.
Collapse Selection-kode yang sedang dipilih.
Expand All-semua bagian yang berkembang ini beralih ke status normal mereka.
Apply Block Comments-Pilih beberapa kode dan tekan tombol ini untuk mengaktifkan seleksi masuk komentar dengan menambahkan / * sebelum dan * / setelah. Lihat bagian berikutnya "Strategi Pemograman Permainan dengan ActionScript" untuk lebih lanjut tentang komentar kode Anda.
Aplly Line Comment- Garis saat ini berubah menjadi komentar. Jika beberapa baris yang dipilih, seluruh baris berubah menjadi komentar dengan menambahkan / / di depan setiap baris.
Remove Comment-komentar Ternyata dipilih kembali ke dalam kode. Hal ini berguna bila Anda ingin untuk sementara menghapus kode dari program Anda. Anda dapat mengomentari baris-baris kode sehingga mereka tidak kompilasi, dan kemudian hapus komentar tanda untuk membawa kode kembali.
Show/Hide Toolbox-matikan tombol ini daftar ActionScript di sebelah kiri sisi jendela.
Di sebelah kanan tombol adalah menu drop-down berlabel Target (Sasaran). Tombol ini memungkinkan Anda untuk memilih dokumen Flash film yang mengkompilasi dan berjalan ketika Anda memilih Kontrol, Test Movie. Hal ini memungkinkan untuk membuat perubahan ke kode Anda dan menguji film tanpa harus beralih kembali ke jendela dokumen pertama. Biasanya, dokumen Flash movie yang terakhir dilihat yang akan ditampilkan di sini, tapi Anda dapat memilih beberapa dokumen jika yang terbuka.
Fitur lain yang penting dari halaman dokumen ActionScript adalah nomor ke kiri. Setiap baris memiliki nomor sendiri. Ketika Anda mendapatkan kesalahan kompilator ketika mencoba untuk menerbitkan film Anda, mereka mengacu pada nomor baris sehingga Anda dapat melacak masalah.
Strategi Pemrograman Game ActionScript
ActionScript 3.0 ini sangat fleksibel. Anda dapat mengikuti sejumlah gaya pemrograman dan masih menciptakan permainan yang bekerja dengan baik.
Namun, beberapa programmer lebih memilih gaya tertentu atas orang lain. Aku telah memilih metode untuk buku ini yang memungkinkan kita untuk fokus pada kode permainan inti, mungkin mengorbankan beberapa organisasi maju.
Metode Class tunggal
Program Hello World ketiga sebelumnya dalam bab ini hanya merupakan salah satu file class terkait dengan Flash Movie dengan nama yang sama. Ini pendekatan yang sederhana cepat dan mudah.
Dengan satu file class, semua properti class dapat kami definisikan secara jelas sebagai variabel di atas class.
Class dokumen mengontrol timeline utama, yang berarti bahwa kita dapat memanggil function- function publik di class dari tombol ditempatkan di stage oleh desainer. Kita juga bisa dengan mudah mengontrol timeline utama, melompat ke frame yang berbeda.
Pendekatan Langkah Terkecil
Ini bagian informasi berikutnya mungkin yang paling penting dalam buku ini. Ini hanyalah sesederhana seperti ini :
CATATAN Alternatifnya adalah dengan menggunakan file class yang berbeda untuk objek permainan yang berbeda dan prosesnya. Hal ini dapat membuat sulit untuk melacak apa kodenya dan dimana dalam permainan kecil. Untuk Misalnya, jika bola bertabrakan dengan dayung di permainan, adalah mendeteksi tabrakan di class objek bola atau class objek dayung itu?
Anda tentu dipersilahkan untuk memecahkan kode tersebut ke dalam beberapa class jika Anda sudah familiar dengan jenis organisasi dari pengalaman Anda dengan bahasa pemrograman lain.
Jika Anda tidak tahu bagaimana memprogram sesuatu, pecahkan menjadi langkah yang lebih kecil sampai Anda bisa. Proggrammer Pemula, dan beberapa programmer berpengalaman yang hanya lupa aturan ini, sering terjebak saat menulis kode. Mereka berpikir: "Saya tidak tahu bagaimana membuat Program melakukan tugas tertentu. "
Namun, ini hanyalah sebuah kasus tugas benar-benar menjadi beberapa tugas, tidak hanya satu.
Misalnya, seorang programmer mungkin ingin membuat sebuah pesawat ruang angkasa berputar di sekitar ketika pemain menekan tombol panah. Programmer menjadi frustrasi karena dia tidak yakin bagaimana untuk menyelesaikan tugas ini.
Kuncinya adalah untuk memecah tugas "berputar sebuah pesawat ruang angkasa:" Periksalah untuk melihat apakah kiri panah ditekan. Kurangi dari properti rotasi sprite kapal. Periksa untuk melihat apakah panah kanan ditekan. Tambahkan ke properti rotasi sprite kapal.
Tugas berputar sebuah pesawat ruang angkasa sebenarnya empat tugas yang lebih kecil digabungkan menjadi satu. Kadang-kadang pemrogram awal membuat kesalahan yang sama dalam cara yang lebih besar. Mereka menganggap mereka tidak dapat membuat seluruh permainan karena tampaknya terlalu rumit. Tapi, jika Anda mematahkan permainan menjadi tugas yang lebih kecil dan lebih kecil (dan mengambil setiap langkah satu per satu), Anda dapat membuat permainan apapun.
Sebuah permainan mendera-tahi lalat-sederhana mungkin memerlukan kurang dari seratus tugas, sedangkan permainan platform yang kompleks mungkin memerlukan beberapa ratus. Tapi setiap tugas, jika dipecah menjadi langkah-langkah sederhana, hanya menjadi mudah pada saat dibangun.
Praktek Pemrograman Yang Baik
Sambil belajar untuk menggunakan ActionScript 3.0 untuk membuat game, hal itu juga merupakan ide yang baik untuk menjaga beberapa praktek pemrograman umum baik dalam pikiran. Ini bukan aturan begitu banyak seperti pedoman. Bahkan aku mengistirahatkan mereka di setiap halaman- halaman buku ini. Tidak ada keraguan bahwa Anda akan menjadi programer yang lebih baik jika Anda belajar tentang praktek-praktek ini.
Gunakan Komentar Dengan Baik
Komentari kode Anda dengan komentar yang berarti tapi sederhana.
Apa yang tampaknya seperti kerja ekstra sekarang akan membuat Anda berterima kasih kepada diri sendiri sejak dari sekarang ketika Anda harus kembali dan memodifikasi kode Anda.
Jika Anda bekerja dengan programmer lain, atau berpikir bahkan ada kesempatan remote yang orang lain akan harus memodifikasi kode Anda di beberapa titik di masa depan, pedoman ini harus menjadi aturan.
Ada umumnya dua jenis komentar: baris komentar dan komentar blok. Sebuah baris komentar hanyalah sebuah kalimat pendek di akhir baris atau kadang-kadang satu baris komentar sebelum baris kode. Sebuah blok komentar adalah komentar yang lebih besar, biasanya satu kalimat atau lebih, sebelum function atau bagian dari kode:
someActionScriptCode(); // this is a line comment
// this is a line comment someActionScriptCode();
/* This is a block comment. Block comments can be much longer. And contain a description of what is to come. */
Hal ini sama pentingnya untuk membuat komentar Anda berarti dan singkat. Jangan hanya menyatakan kembali apa kode sudah mengatakan, seperti ini:
// loop 10 times for (var i:int=0;i<10;i++) { Juga, tidak menggunakan paragraf teks ketika beberapa kata akan melakukannya. Sebuah komentar yang panjang dan bertele-tele bisa sama tidak berguna karena tidak ada komentar sama sekali. Jangan berlebihan.
Gunakan Variabel Deskriptif dan Nama Function
Jangan takut untuk menggunakan nama yang panjang dan deskriptif untuk variabel dan function. Jika Anda melakukannya, kode menjadi sedikit jelas. Berikut adalah suatu contoh:
public function putStuff() { for(var i:int=0;i<10;i++) { var a:Thing = new Thing(); a.x = i*10; a.y = 300; addChild(a); } }
Apakah kode yang melakukan? Itu seperti menempatkan salinan dari movie clip di layar. tapi apakah movie clip dan untuk tujuan apa? Bagaimana dengan berikut ini?
public function placeEnemyCharacters() { for(var enemyNum:int=0; enemyNum<10; enemyNum++) { var enemy:EnemyCharacter = new EnemyCharacter(); enemy.x = enemyNum*10; enemy.y = 300; addChild(enemy); } }
Kembali ke kode ini akan jauh lebih mudah.
Mengaktifkan Kode Berulang atau Serupa ke dalam Functionnya
Jika Anda perlu menggunakan baris kode yang sama lebih dari satu kali dalam sebuah program, pertimbangkan mengubahnya menjadi function sendiri dan memanggil function itu sebagai gantinya.
Sebagai contoh, mungkin ada beberapa tempat dalam permainan Anda di mana Anda ingin memperbarui skor. Jika skor ditampilkan dalam bidang teks bernama scoreDisplay, Anda melakukannya seperti ini:
scoreDisplay.text = "Score: "+playerScore;
Tapi bukannya termasuk baris ini kode yang sama di lima tempat, Anda harus meletakkan function panggilan di lima tempat sebagai gantinya:
showScore();
Lalu functionnya akan terlihat seperti ini :
public function showScore() { scoreDisplay.text = "Score: "+playerScore; } Dengan kode ini hanya di satu tempat, itu adalah sepele untuk mengubah kata Skor tampilan untuk Poin. Anda tidak perlu mencari dan mengganti seluruh kode Anda karena hanya di satu tempat.
Anda dapat melakukan hal yang sama bahkan jika kode ini tidak identik. Sebagai contoh, misalkan Anda memiliki lingkaran di mana Anda menempatkan 10 salinan dari movie clip A pada sisi kiri stage dan loop lain di mana Anda menempatkan 10 eksemplar dari B klip di sisi kanan stage. Anda bisa membuat function yang mengambil referensi film klip dan posisi horisontal untuk penempatan dan tempat movie clip. Kemudian, Anda dapat menyebutnya dua kali, sekali untuk Sebuah movie clip dan sekali untuk film klip B.
Uji Kode Anda dalam Potongan Kecil
Ketika Anda menulis kode Anda, ujilah dalam sebagai potongan sekecil mungkin. Dengan cara ini, Anda menangkap kesalahan ketika Anda menulis kode Anda.
Misalnya, jika Anda ingin membuat lingkaran yang menempatkan 10 lingkaran pada layar secara acak lokasinya dengan warna acak, Anda ingin untuk membuat pertama kali10 lingkaran di lokasi acak. Ujilah dan dapatkan bagian yang bekerja sama seperti yang Anda inginkan. Kemudian, tambahkan acak function warna.
CATATAN Satu pengecualian umum untuk ini adalah penggunaan i sebagai variabel tambahan yang digunakan dengan untuk loop. Dalam contoh sebelumnya, saya akan meninggalkan i dan tidak berubah ke enemyNum. Cara baik baik-baik saja, tetapi telah menjadi cukup standar untuk programmer untuk menggunakan i in untuk loop. Bahkan, bersarang untuk loop biasanya pergi untuk menggunakan j dan k dalam penggunaan loop juga.
Hal Ini pada dasarnya merupakan perpanjangan dari pendekatam kecil pemrograman. Patahkan tugas pemogramman Anda ke dalam langkah-langkah kecil. Buat kode untuk setiap langkah. Kemudian, uji setiap langkah.
Konsep Dasar ActionScript
Mari kita lihat pada sintaks pemrograman yang paling dasar dalam ActionScript 3.0. Jika Anda masih awam untuk ActionScript tetapi telah menggunakan bahasa pemrograman lain, ini adalah cara cepat untuk melihat bagaimana ActionScript bekerja.
Dalam kasus Anda telah menggunakan ActionScript ActionScript 2.0 atau sebelumnya, saya menunjukkan beberapa tempat dimana ActionScript 3.0 berbeda.
Membuat dan Menggunakan Variabel
Menyimpan nilai dalam ActionScript 3.0 dapat dilakukan dengan pernyataan tugas sederhana. Namun, Anda perlu untuk mendeklarasikan variabel pertama kali Anda menggunakannya. Anda dapat melakukan ini dengan menempatkan var sebelum penggunaan pertama dari variabel:
var myValue = 3;
Atau, Anda bisa mendeklarasikan variabel pertama dan menggunakannya nanti:
var myValue;
Bila Anda membuat variabel dengan cara ini, itu adalah jenis Obyek serbaguna. Ini berarti dapat memegang jenis nilai variabel: angka, string seperti "Halo", atau sesuatu yang lebih kompleks seperti array atau referensi film klip.
Namun, jika Anda mendeklarasikan variabel untuk menjadi jenis tertentu, Anda hanya dapat menggunakan variabel untuk menyimpan nilai dari jenis yang sama:
var myValue: int = 7;
Sebuah tipe variabel int dapat berupa bilangan bulat, positif atau negatif. Sebuah variabel uint hanya untuk bilangan bulat positif. Jika Anda ingin menggunakan nilai fraksional, juga dikenal sebagai floating-point, Anda harus menggunakan jenis Number:
var myValue: Number = 7.8;
Ada juga tipe String dan Boolean. String memegang teks, dan nilai-nilai Boolean harus baik benar atau salah.
Ini adalah tipe primitif dasar. Namun, Anda juga dapat memiliki array, klip video dan referensi sprite, dan jenis baru yang sesuai class kode yang Anda buat.
CATATAN Ada keuntungan efisiensi pasti untuk menggunakan variabel yang didefinisikan secara sempit. Untuk Misalnya, nilai-nilai int dapat diakses banyak kali lebih cepat daripada nilai Nomor. Hal ini dapat membantu Anda mempercepat proses permainan penting jika Anda tetap sebagai dasar tipe yang sama mungkinnya untuk semua variabel.
Operasi pada variabel numerik seperti hampir semua bahasa pemrograman lain. Penambahan, pengurangan, perkalian, dan pembagian dilakukan dengan, -, *, dan / operator:
var mynumber: Number = 7.8 2; var myOtherNumber: int = 5-6; var myOtherNumber: Number = mynumber * 3; myNextNumber var: Number = mynumber / myOtherNumber;
Anda juga dapat menggunakan operator khusus untuk menyederhanakan operasi. Sebagai contoh, operator increment sebuah variabel dengan satu. Para - Operator berkurang dengan satu:
mynumber;
Anda dapat menggunakan =, -=, *=, dan / = untuk melakukan suatu operasi pada variabel asli. Untuk Misalnya, ini menambah tujuh ke variabel:
mynumber = 7;
Anda juga dapat menggunakan tanda kurung untuk mengatur urutan operasi:
var mynumber: Number = (3 7) * 2;
String juga dapat dimanipulasi dengan operator dan operator =:
var myString: String = "Hello"; var myOtherString = myString "World"; myString = "World";
Ketika kita menggunakan variabel dalam class, mereka menjadi bagian dari class itu. Dalam kasus itu, kami harus mendefinisikan mereka lebih baik sebagai pribadi atau publik. Perbedaannya adalah bahwa pribadi variabel tidak dapat diakses oleh kode di luar class. Untuk sebagian besar tujuan, ini adalah apa yang Anda inginkan sebagai function class harus satu-satunya hal yang dapat mengubah class variabel nilai.
Penyataan Kondisi
Pernyataan jika dalam ActionScript adalah sama seperti di banyak bahasa pemrograman: if (myValue == 1) { doSomething (); }
Perbandingan == memeriksa kesetaraan umum. Anda juga dapat menggunakan>, <,> =, dan <= untuk lebih besar dari, kurang dari, lebih besar dari atau sama dengan dan kurang dari atau sama dengan, masing-masing.
CATATAN Ada juga variabel yang memegang lebih dari sekedar nilai tunggal. Array, misalnya, mengadakan serangkaian nilai-nilai dan sangat berguna untuk pemrograman game. Kita akan melihat array pada awal Bab 4, "Permainan Otak:. Memori dan Pengurangan"
Anda juga dapat menambahkan else dan else if untuk mengembangkan strukturnya :
if (myValue == 1) { doSomething(); } else if (myValue == 2) { doSomethingElse(); } else { doNothing(); }
Anda dapat juga memperumit kondisi dengan && and ||. Mereka mewakili penggunaan and dan or sebagai operator pembanding.
Perulangan
Perulangan dilakukan dengan untuk pernyataan atau laporan sementara.
Untuk Pernyataan for memiliki tiga bagian: pernyataan awal, kondisi, dan mengubah pernyataan. Sebagai contoh, kode berikut menyetel variabel i ke nol, loop selama kurang dari 10, dan meningkatkan nilai i setiap kali melalui loop:
for (var i: int = 0; i <10; i + +) { doSomething (); }
Anda dapat menggunakan perintah break untuk keluar dari loop setiap saat. Perintah terus melompati sisa baris kode dalam loop dan memulai iterasi berikutnya melalui loop.
Sebuah perulangan while pada dasarnya adalah sebuah lingkaran yang terus selamanya asalkan kondisi awal ini terpenuhi:
var i: int = 0; while (i <10) { i + +; }
Sebuah variasi dari perulangan while adalah perulangan do. Ini adalah dasarnya sama, kecuali Pernyataan bersyarat adalah setelah loop, memastikan bahwa dijalankan setidaknya sekali:
CATATAN Bahasa Pemograman lainnya menggunakan and dan or dalama kondisi pernyataan. Namun dalam ActionScript 3.0 hanya && dan || yang disetujui
Fungsi (Function) Untuk membuat function dalam ActionScript 3.0, Anda hanya perlu untuk menyatakan function, apakah parameter yang dibutuhkan, dan apa yang dikembalikan. Kemudian menentukan function dengan kode di dalamnya.
Jika function ini berada dalam class, Anda perlu juga menentukan apakah public atau private functionnya. Sebuah function private tidak bisa diakses di luar class. Dengan class satuan kami kembangkan metode permainan, kita menggunakan sebagian besar class privat.
Berikut ini adalah function sederhana dari dalam class. Jika function ini berada di timeline utama, bukan di class, kita akan meninggalkan kata kunci private:
private function myFunction(myNumber:Number, myString:String): Boolean { if (myNumber == 7) return true; if (myString.length < 3) return true; return false; } Semua contoh function ini adalah untuk mengembalikan true jika salah satu nomor adalah tujuh atau string kurang dari tiga. Ini adalah contoh sederhana untuk menunjukkan sintaks balik menciptakan function.
Pengujian dan Debugging Tidak seorang pun, bahkan programmer paling berpengalaman, menulis kode yang sempurna. Jadi, kita harus menulis kode, menguji, dan debug.
Jenis Bugs Ada tiga alasan untuk debug kode Anda. Yang pertama adalah bahwa Anda mendapatkan pesan kesalahan ketika mengkompilasi atau berjalan. Dalam hal ini, Anda harus mencari tahu masalah dan memperbaikinya.Biasanya, Anda dapat melihat masalah dengan segera (misalnya, nama variabel salah eja). Alasan kedua adalah bahwa program ini tidak bekerja seperti yang diharapkan. Mungkin penggunaan spasi yang seharusnya untuk bergerak, tetapi tidak. Atau, masukan pengguna tidak diterima. Atau, mungkin peluru kebakaran pahlawan pada musuh lulus tepat melalui mereka. Jenis bug perlu diburu, dan kadang-kadang dapat memakan waktu cukup lama.
CATATAN Anda mungkin menemukan bahwa fungsi kadang-kadang disebut sebagai metode. Dalam dokumentasi, metode istilah sering digunakan, tetapi fungsi kata kunci yang digunakan untuk mendefinisikan, seperti Anda lihat dalam fungsi berikut. Jadi, saya lebih suka menggunakan istilah fungsi
Alasan ketiga untuk debug kode Anda adalah untuk memperbaikinya. Anda dapat melacak inefisiensi dan masalah yang menyebabkan slowdowns. Kadang-kadang ini hanya sebagai kritis sebagai bug karena permainan lambat yang mungkin tidak dapat dimainkan.
Metode Pengujian Anda dapat melacak masalah dengan kode Anda dalam beberapa cara. Yang paling sederhana adalah dengan hanya berjalan melalui kode di kepala Anda. Misalnya, berjalan melalui garis, kode berikut dengan line, dan melakukan perhitungan seperti Anda adalah komputer:
var mynumber: int = 7; mynumber = 3; mynumber *= 2; mynumber;
Anda tidak perlu untuk menjalankan kode untuk memberitahu bahwa nilai mynumber sekarang 21.
Untuk situasi di mana kode yang terlalu panjang atau terlalu perhitungan sulit, perintah sederhana trace mengirimkan informasi ke panel Output untuk Anda untuk memeriksa:
var mynumber: int = 7; mynumber = 3; mynumber *= 2; mynumber; trace ("mynumber =", mynumber);
Saya menggunakan pernyataan trace sering pada saat pengembangan. Sebagai contoh, jika pemain membuat sekelompok pilihan pada awal permainan, saya mengirim hasil dari pilihan-pilihan untuk Keluaran panel dengan trace. Dengan begitu, sementara aku sedang menguji, aku punya pengingat Apakah pilihan Saya sebelum bermain game bila hal sesuatu yang tidak terduga terjadi.
Menggunakan Debugger Dengan Flash Anda dapat menggunakan debugger runtime untuk memeriksa kode Anda sementara film Anda berjalan.
Menetapkan suatu Breakpoint Cara paling sederhana untuk debug sebuah program adalah untuk menetapkan titik istirahat. Anda dapat melakukan ini dengan memilih baris kode Anda dan memilih Debug, Toggle Breakpoint dari menu. Anda juga dapat menekan Command B (Mac) atau Ctrl B (Windows) untuk membuat atau menghapus breakpoint.
CATATAN Sejauh ini, jenis yang paling umum dari pertanyaan saya dapatkan dari programmer lain adalah bahwa mereka memiliki beberapa kode yang tidak bekerja seperti yang diharapkan. Dapatkah saya memberitahu mereka apa yang salah dengan itu?
Ya, tapi jawabannya tepat di depan mereka, mereka hanya perlu menggunakan keterampilan debugging mereka untuk menemukannya. Dan, sebagai pencipta kode, mereka biasanya dalam jauh lebih baik posisinya untuk melakukan itu daripada saya.
Figure 1.13 menunjukkan kode DebugExample.as dengan mengatur breakpoint. Anda dapat melihatnya sebagai titik di sisi kiri jendela sebelum baris kedelapan. Program sederhana menciptakan Bidang teks 10 dengan angka 0 sampai 9 di dalam mereka dan menempatkan mereka secara vertikal di sisi kiri layar.
Figure 1.13 Kursor telah ditempatkan pada baris ke 8 dan kemudian Debug, Toggle Breakpoint Ttlah dipilih untuk mengatur sebuah breakpoint disana.
Melangkah Dengan Kode
Ada lima tombol di bagian atas panel Console Debug Anda di kiri atas. Yang pertama adalah tombol Lanjutkan, yang dilanjutkan film dari titik di mana ia diberhentikan. Yang kedua adalah X. Ini mengakhiri sesi debugging dan melanjutkan film dari titik ini tanpa debugging.
Tiga lainnya melibatkan langkah melalui kode. Yang pertama mengeksekusi baris saat ini dan bergerak ke yang berikutnya. Jika baris saat ini kode memanggil function lain, hal ini menjalankan functionnya. Di sisi lain, tombol berikutnya, Step In, program melangkah ke function baru jika ada pada baris yang sama. Menggunakan tombol ini lagi dan lagi berarti Anda mengunjungi setiap baris program individu, bukan melompati panggilan function.
Tombol terakhir langkah keluar dari function saat ini. Jadi, gunakan tombol ini untuk menyelesaikan arus function dan pergi ke baris berikutnya dari function Anda hanya kiri.
Figure 1.15 menunjukkan panel men-debug setelah Anda melangkah ke function showNumber dan kemudian bergerak ke bawah beberapa baris. Anda dapat melihat bahwa panel Variabel menunjukkan nilai i. Anda juga dapat memperluas variabel myText untuk melihat semua properti dari halaman teks.
Di kiri atas, Anda dapat melihat di mana Anda berada dalam program. Anda sedang dalam function showNumber, yang disebut dari function konstruktor untuk class. Ini sangat berguna ketika Anda memiliki function yang bisa disebut bentuk beberapa tempat.
Mengetahui bagaimana menggunakan debugger untuk memperbaiki bug dan perilaku tak terduga adalah sama pentingnya dengan mengetahui bagaimana untuk menulis kode di tempat pertama. Ketika Anda bekerja pada game di buku ini dan mereka mencoba untuk memodifikasi sesuai dengan kebutuhan anda, juga bekerja pada belajar bagaimana untuk debug.
Figure 1.15 Panel debug menunjukkan perkembangan dari program seperti langkah Anda.
Terbitkan Game Anda
Setelah Anda menyelesaikan permainan dan diuji untuk kepuasan Anda, sekarang saatnya untuk menerbitkannya. Game Flash biasanya diterbitkan ke Web dengan menambahkan mereka dalam halaman HTML.
Flash membuat ini relatif mudah, tetapi ada beberapa pilihan yang harus Anda pahami sebelum penerbitan.
Anda dapat mengakses dialog Publish Settings dengan memilih File, Publish Settings. Pastikan Anda melihat film Flash (. fla) file pertama, bukan class ActionScript (. sebagai) file.
Publikasikan pengaturan yang berhubungan dengan file film Flash.
Ada tiga bagian biasanya dalam dialog Publish Settings: Format, Flash, dan HTML.
Format
Pengaturan Format, ditunjukkan dalam Figure 1.16, memungkinkan Anda untuk memilih file mana yang untuk ekspor.
Format gambar yang sebagian besar untuk substitusi ketika pengguna tidak memiliki Flash pemain diinstal. Proyektor adalah untuk aplikasi yang berdiri sendiri, sebagai lawan untuk menciptakan format flashdisk (. Swf) file untuk pemutaran di web browser.
Figure 1.16 Hanya format Flash dan HTML yang dipilih untuk diekspor
Jika Anda memiliki halaman web template kustom yang sudah Anda gunakan di situs Anda, piliham HTML mungkin tidak diperlukan. Dalam hal ini, Anda tidak ingin halaman default untuk menanamkan permainan Anda ke dalamnya. Namun, Anda mungkin ingin tetap mengekspor, dan kemudian mengambil tubuh kode dari contoh halaman ini untuk digunakan dalam ruang yang tepat pada halaman Anda sendiri. Flash
Pengaturan Flash adalah yang paling penting untuk mengekspor film Flash yang kompleks seperti permainan kita. Anda dapat mengaturnya untuk mengekspor Flash Player 10 file dengan set versi ActionScript untuk ActionScript 3.0 (lihat Figure 1.17).
Figure 1.17 Disana terdapat pengaturan yang baik untuk game Flash secara umum digunakan
Anda juga dapat mengatur Melindungi dari pilihan Impor. Hal ini membuat lebih sulit bagi seseorang untuk men-download film Anda dan memodifikasi untuk digunakan sendiri.
Kepentingan tertentu untuk pengembang permainan adalah pengaturan Percepatan Hardware. tidak ada modus normal atau apa yang sebelumnya lebih tua versi Flash telah digunakan. Tetapi dengan CS5 Anda juga memiliki pilihan untuk mengatur ke Direct atau GPU. Yang pertama mencoba untuk menggambar grafik langsung ke layar, bukan ke jendela browser. GPU mencoba untuk menggunakan Prosesor grafis di komputer untuk melakukan beberapa gambar dan video playback.
Uji kedua jika Anda ingin, meskipun Anda harus melakukannya dalam browser sebagai pengujian di Flash menggunakan keduanya. Flash turun kembali ke pengaturan None jika salah satu modus Direct atau GPU tidak tersedia pada komputer pemutaran.
CATATAN Sayangnya, tidak ada cara pasti untuk melindungi Flash movie Anda setelah itu telah menempatkan di Web. Ada program decompiler diluar sana yang mengambil kompresi dan melindungi SWF file serta mengubahnya menjadi sebuah film FLA dapat digunakan. Menggunakan Lindungi dari Impor dan Film Compress membuat ini lebih sulit, tetapi selalu bahaya. Sisa dari pengaturan Flash mengutamakan kompresi dan pengaturan keamanan. Anda dapat memeriksa Flash dokumentasi untuk deskripsi rinci masing-masing.
HTML
Pengaturan HTML adalah hal penting jika Anda ingin menggunakan halaman HTML yang dibuat oleh Penerbitan di situs Anda. Hal ini setidaknya ide yang baik untuk melihat bagaimana Adobe berpikir Anda harus mempublikasikan film Flash Anda. Figure 1.18 menunjukkan pilihan ini.
Figure 1.18 Pengaturan HTML membiarkan Anda memilih sebuah template HTML untuk diekspor dengan Flash Movie
Pengaturan default Flash Hanya menggunakan JavaScript untuk menempelkan video ini. Hal ini bergantung pada File swfobject.js, yang diproduksi saat penerbitan, juga. Halaman HTML utama kemudian membebankan JavaScript dalam file ini, yang kemudian menempatkan film Flash dalam tag <div> dalam halaman web.
Salah satu pilihan populer adalah memiliki skala Flash movie untuk mengisi seluruh jendela browser. Hal ini dapat dilakukan dengan hanya mengubah pengaturan Dimensi untuk Persentasi dan Lebar
CATATAN Mengapa pergi ke semua hal yang susah dengan menggunakan JavaScript ketika Anda hanya dapat menggunakan sederhana <object> / <embed> tag, seperti Anda mungkin telah dilakukan di masa lalu? Karena paten sengketa, Microsoft harus mengubah cara media tertanam ke dalam halaman di Internet Explorer. Setiap media yang tertanam langsung ke halaman sekarang memerlukan klik untuk mengaktifkannya di Internet Explorer 7 dan beberapa versi Internet Explorer 6. Namun, hal ini Metode JavaScript menghindari itu klik ekstra. dan Height menjadi 100. Sekarang film sebagai skala besar karena dapat, sementara masih pas di jendela dan mempertahankan proporsinya.
Mengubah Skala untuk Fit Exact memungkinkan untuk kehilangan proporsi dan skala vertikal untuk sesuai dengan ketinggian jendela dan horizontal agar sesuai dengan lebar jendela.
Karena semua grafis vektor dalam skala flash baik dan kode Anda bekerja dengan baik pada setiap skala, kadang-kadang ide yang baik untuk memungkinkan pemain untuk menyesuaikan ukuran permainan dengan hanya mengubah ukuran jendela browser mereka. Dengan cara ini, orang dengan monitor kecil dan monitor besar dapat memainkan game yang mereka suka.
Pilihan lain adalah pengaturan Kualitas. Pada pengaturan default Tinggi, Flash player membuat gambar pada resolusi tinggi untuk mendapatkan yang terbaik anti-aliasing efek di tepi vektor bentuk. Mengubah ke Medium mengurangi resolusi anti-aliasing, tetapi meningkatkan kinerja film. Menggunakan Auto tinggi berarti bahwa ia mencoba untuk menggunakan pengaturan Tinggi, namun turun ke bawah ke Medium jika pemutaran terlalu lambat. Menggunakan kualitas rendah menghapus semua anti-aliasing, tapi menawarkan kecepatan pemutaran tertinggi.
Opsi terakhir, terbaik, seperti pengaturan Tinggi. Perbedaannya adalah nikmat yang masih Tinggi kecepatan lebih dari kualitas ketika menghidupkan. Kualitas terbaik nikmat terlepas dari kecepatan.
Daftar Pemograman Game ActionScript
Ketika Anda sedang membangun sebuah game Flash, ada banyak faktor untuk mempertimbangkan. Kadang-kadang mudah untuk melupakan elemen kunci yang mengarah ke permainan tidak bekerja dengan benar. Untuk membantu Anda menghindari beberapa masalah sederhana, di sini adalah daftar berguna yang dapat Anda lihat.
Penerbitan dan Dokumen Pengaturan
Sangat mudah untuk melupakan bahwa ada pengaturan penting dalam dialog Publish Settings dan Properti film panel.
Mengatur Dengan Benar Class Dokumen? Figure 1.7 menunjukkan bagaimana untuk mengatur class dokumen dengan menggunakan panel dokumen film. Lupa untuk mengatur ini berarti bahwa film berjalan dan hanya mengabaikan class yang Anda buat.
Mengatur Penerbitan Dengan Benar? Pastikan Anda mengatur Publish Settings sehingga film Flash dikompilasi untuk Flash 10 dan ActionScript 3.0. Sangat diragukan bahwa film Anda, bahkan jika ini adalah mengkompilasi tidak diatur benar, tapi mungkin menjadi mungkin.
Periksa Pengaturan Keamanan Dalam Publish Settings di bagian Flash, ada pengaturan Putar Keamanan Lokal. Ini dapat diatur untuk baik Akses File Lokal Hanya atau untuk Akses Jaringan Hanya File. Untuk membuat film Flash yakin aman, Anda harus memilih satu atau yang lain.
Hal ini dapat menjadi masalah jika Anda memiliki file lokal yang Anda butuhkan untuk mengakses, dan ini diatur ke Jaringan Akses File Saja. Jika Anda menggunakan file eksternal sama sekali dan hal- hal yang tidak bekerja seperti yang diharapkan ketika Anda meng-upload ke server, membuat tempat ini menjadi tempat pertama yang Anda cek.
Nama Class, Function, dan Variabel Bahkan jika Anda mencoba untuk mengikuti praktek-praktek pemrograman yang baik dicatat sebelumnya dalam bab ini, Anda masih dapat membuat beberapa kesalahan sederhana yang bisa sulit untuk melacak.
Mengingat Kasus Yang Sensitif
Bila Anda menamakan variabel atau function, masalah terjadi. Jadi, myVariable dan myvariable sama sekali berbeda. Demikian pula, myClass class bernama menjalankan function myClass ketika menginisialisasi. Jika Anda memiliki menamakannya ClassSaya oleh kecelakaan, bagaimanapun, tidak disebut.
Perbedaan nama variabel biasanya ditangkap oleh compiler karena salah eja, nama variabel tidak akan diinisialisasi. Tapi, hal tersebut bisa saja dilupakan bahwa Anda telah menyatakan variabel dan menyatakan lagi dengan kapitalisasi berbeda. Ini adalah sesuatu untuk berjaga-jaga didalamnya.
Apakah File Movie Clip Class Tersedia? Jika movie clip ini diberi nama Linkage untuk digunakan oleh ActionScript, dapat menggunakan baik class standar yang dinamis, atau Anda dapat menciptakan sebuah class untuk itu. Misalnya, Anda dapat membuat EnemyCharacter movie clip dan kemudian memiliki sebuah file class EnemyCharacter.as yang terikat didalmnya.
Namun, mudah untuk melupakan class ini atau salah memberi nama itu. Sebagai contoh, sebuah Enemycharacter.as (c huruf kecil) file hanya diabaikan dan tidak melekat pada EnemyCharacter movie clip.
Apakah Pengembangan Class Adalah Hal yang Tepat? Anda dapat memulai class film dengan definisi seperti ini:
public class myClass extends Sprite {
Namun, dengan memperluas Sprite bukan MovieClip, Anda mengasumsikan bahwa film hanya memiliki satu frame. Setiap kode yang merujuk pada frame lain tidak bekerja seperti yang diharapkan.
Apakah Function Konstruktor Mengatur Nama yang Tepat? Jika Anda memiliki class bernama myClass, function konstruktor harus diberi nama persis myClass, jika tidak, ia tidak berjalan ketika class diinisialisasi. Atau, jika Anda tidak ingin hal itu menjalankannya segera, berikan nama tersebut sesuatu seperti startMyClass dan menyebutnya setelah bingkai dimulai.
Runtime Issues
Ada juga masalah yang tidak menyebabkan kesalahan kompilator dan tampaknya tidak menjadi masalah pada semua pada awalnya. Kemudian, mereka dapat muncul kemudian dalam pembangunan dan menjadi sangat frustasi untuk melacak.
Apakah Anda Mengatur Properti Objek Sebelum Siap?
Yang satu ini membuat saya gila. Pada dasarnya, apa yang terjadi adalah bahwa Anda melompat ke frame baru di film atau movie clip, dan kemudian mencoba untuk mengatur atau mengakses properti dari sebuah objek di sana. Namun, frame dan obyek yang belum diinisialisasi, sehingga properti tidak ada.
TooEarlyExample.fla dan TooEarlyExample.as menggambarkan hal ini. Class tersebut melompat ke timeline utama ke frame 2, di mana dua bidang teks menunggu. Hal tersebut kemudian segera mencoba untuk mengatur teks dari field pertama, tapi itu hanya panggilan pesan runtime error. Bidang kedua adalah mengatur kapan film dilakukan menginisialisasi dan menjalankan script di frame yang. Bahwa script pada gilirannya panggilan function dalam class. Function ini menset teks dari kolom kedua tanpa masalah.
Apakah Anda Membuang Objek?
Meskipun ini mungkin tidak menyebabkan banyak masalah, itu adalah praktik yang baik untuk ingat untuk membuang semua benda yang Anda buat setelah Anda selesai menggunakan mereka. Misalnya, jika Anda memiliki pemain menembak peluru di sekitar layar, mereka mungkin bisa menahan dengan kunci dan menembak ribuan dalam satu menit. Ketika mereka meninggalkan daerah terlihat dari layar, Anda tidak ingin hal ini berkeliaran dalam memori dan dapat dilacak. Untuk menghapus sebuah objek, Anda hanya perlu untuk menyingkirkan semua referensi ke dalam variabel dan array Andadan menggunakan removeChild untuk membawanya keluar dari daftar layar.
Apakah Semua Variabel Diketik Dengan Baik?
Faktor lain yang mungkin tidak menyebabkan masalah langsung, tapi mungkin masih jangka panjang masalah, adalah mengetik variabel. Jangan menggunakan jenis Nomor ketika uint int atau bahkan melakukannya. Hal yang terakhir ini jauh lebih cepat dan membutuhkan memori yang lebih sedikit. Jika Anda memiliki ribuan nomor disimpan dalam array, Anda mungkin akan melihat perlambatan beberapa dengan menggunakan Nomor ketika int akan dilakukan.
Lebih buruk dari contoh ini adalah menggunakan variabel untyped, yang Objek. Mereka dapat menyimpan angka dan bilangan bulat, tetapi memiliki overhead yang lebih jauh. Juga, melihat keluar untuk menciptakan MovieClips yang dapat menjadi tunggal dengan berbingkai Sprite.
Apakah Anda Mengingat untuk Sertakan Semua Font?
Menggunakan ActionScript dinamis dengan bidang teks yang rumit. Jika Anda menempatkan bidang teks di atas stage dan lupa untuk menanamkan font yang mereka gunakan, Anda mendapatkan pesan kesalahan. Lebih buruk dari itu, jika Anda dinamis membuat bidang teks dan mencoba untuk menggunakan font yang tidak tertanam dalam Anda film, maka Anda mungkin hanya mendapatkan ruang kosong, bukan teks. Cara Anda menambahkan font untuk film Anda adalah pergi ke panel Perpustakaan dan menggunakan hak kepemilikan pada menu pull-down untuk menambahkan font ke Perpustakaan. Perlu diingat bahwa Anda mungkin perlu menanamkan beberapa versi font untuk menangani variasi seperti Arial versus Arial Bold
Lihat bagian "Using Point Bursts in a Movie" di Bab 8, "Casual Games: Match Three and Collapsing Blocks," untuk diskusi lebih lanjut pada kesulitan terlibat dengan embedding font.
Pengujian Masalah
Item ini berhubungan dengan hal-hal yang dapat terjadi selama pengujian atau hal-hal yang harus menjadi bagian pendekatan pengujian Anda.
Apakah Anda Perlu Menonaktifkan Keyboard Shortcuts?
Jika Anda menggunakan keyboard input saat pengujian film Anda, Anda mungkin menemukan bahwa beberapa kunci tidak merespon. Hal ini karena lingkungan pengujian memiliki beberapa cara pintas keyboard yang membuat tombol tersebut dapat ditekan.
Untuk mengaktifkan cara pintas keyboard dari dalam lingkungan pengujian dan memungkinkan film Anda bertindak seperti itu akan ketika pada Web, pilih Kontrol, Nonaktifkan Keyboard Shortcuts.
Apakah Anda Mengujinya pada Model Bingkai yang Lain?
Jika Anda menggunakan animasi berbasis waktu, seharusnya tidak peduli apa frame rate anda sudah siap untuk, 1 atau 60; animasi harus bergerak sepanjang pada kecepatan yang sama. Namun, ihal itu sangat berharga pada saat pengujian frame rate yang rendah, katakanlah 6 atau 12, untuk melihat apakah pengguna pada mesin yang lambat dapat melihat. Kami menggunakan animasi berbasis waktu di seluruh buku ini.
Selain itu, pengujian bernilai pada frame rate lambat dan tinggi untuk melihat apakah tidak ada beberapa sistem yang masih menggunakan animasi berbasis waktu atau tanggapannya.
Apakah Anda Mengujinya dari Server?
Masalah serupa adalah dalam tengah kepalanya ketika Anda berasumsi bahwa semua benda hadir di awal film. Yang benar adalah bahwa Flash film streaming, yang berarti mereka mulai bermain sebelum semua media telah dimuat.
Ketika Anda menguji film secara biasa, bagaimanapun, semua media langsung di sana. Kemudian, ketika Anda meng-upload dan tes pada server, beberapa mungkin hilang untuk beberapa detik pertama atau bahkan menit.
CATATAN Ketika Anda menguji film, Anda bisa merestart tes dengan memilih View, Simulasikan Download. Juga, lihatlah Lihat, Download Pengaturan untuk mengatur kecepatan download yang diinginkan simulasi, seperti 56K. Kemudian, restart film dengan objek mengalir di di tingkat yang diinginkan. Saya juga mengetest dengan server yang ada untuk memastikan.
Solusi untuk setiap masalah yang mungkin timbul adalah memiliki layar loading yang tidak melakukan apapun tapi menunggu untuk semua media yang akan streaming. Kami melihat sebuah contoh dari layar loading di Bab 2, "ActionScript Game Elements."
Daftar ini seharusnya membuat lebih mudah bagi Anda untuk menghindari masalah umum dan mengabdikan lebih banyak waktu untuk menciptakan permainan dan sedikit waktu untuk melacak bug.
Sekarang bahwa kita memiliki dasar-dasar ActionScript 3.0 sudah selesai, bab selanjutnya melihat adakah contoh yang singkat dari membangun blok yang dapat Anda gunakan untuk membuat game.