Membuat Flash Game

on Selasa, 08 Desember 2009

Warning/Peringatan:Karna Dokumen ini saya ambil di website yang berbahasa inggris dan diterjemahkan dengan google translet saat saya copykan menjadi dua bahasa mohon dimaafkan
dokumen ini saya ambil disini


Artikel ini ditujukan untuk orang-orang yang baru mulai menggunakan Flash peralatan untuk membuat barang-barang interaktif.
This article will take you from a blank flash document to an action game in minutes, with any tricky things explained in ordinary, everyday language that you can skip over if you want. Artikel ini akan membawa Anda dari dokumen flash kosong untuk aksi permainan dalam beberapa menit, dengan hal-hal yang sulit dijelaskan dalam biasa, bahasa sehari-hari yang anda dapat melewati di atas jika Anda inginkan.

As a special thank you for reading this article I'm giving the complete source of game.fla, which you can use for whatever purposes you want, private or commercial. Sebagai terima kasih khusus untuk membaca artikel ini saya sedang memberikan sumber game.fla lengkap, yang dapat Anda gunakan untuk tujuan apa pun yang Anda inginkan, swasta atau komersial. You must however give credit to GameInnovator.com for using any part of the source in your projects. Namun Anda harus memberikan kredit kepada GameInnovator.com untuk menggunakan bagian apapun dari sumber dalam proyek Anda. This flash file is made for ActionScript 2.0. Ini file flash yang dibuat untuk ActionScript 2.0.

Download the game source code here Download permainan kode sumber di sini

Help decide what information you want to see about flash game design by letting us know what you love best about creating flash games. Membantu memutuskan informasi apa yang ingin Anda lihat tentang permainan flash desain dengan membiarkan kami tahu apa yang Anda sukai terbaik tentang cara membuat game flash.

Fill in a quick, 7-question survey and we'll be able to provide you with the best possible information suitable to your needs. Isi cepat, 7-pertanyaan survei dan kami akan dapat memberi Anda informasi yang terbaik sesuai dengan kebutuhan Anda.

What do you love best about designing flash games? Apa yang Anda sukai terbaik tentang merancang flash game?

Without further ado, let us fire up our favorite Flash tool. Tanpa basa-basi lagi, mari kita jalankan alat Flash favorit kami. There are many tools available, however I recommend using Adobe Flash CS4 as it is currently the best flash tool available. Ada banyak piranti tersedia, namun saya menyarankan menggunakan Adobe Flash CS4 seperti saat ini merupakan alat kilat terbaik tersedia.

Adobe Flash CS4 Professional - Full Adobe Flash CS4 Profesional - Kendali

... ... and after working on your game do not forget to take a break. dan setelah bekerja pada permainan Anda jangan lupa untuk beristirahat. Learn some new poker tips and develop a texas holdem strategy that will help you win. Pelajari beberapa tips poker baru dan mengembangkan texas holdem strategi yang akan membantu Anda menang.

Did you know you can win at keno in just minutes when you learn the keno odds and probabilities at GamblingCity.net! Tahukah Anda bahwa Anda bisa menang di keno hanya dalam hitungan menit ketika Anda mempelajari keno peluang dan probabilitas di GamblingCity.net!

Setting the scene Setting adegan

Create a new flash document (menu File/New) and save it as game.fla. Buat dokumen flash baru (menu File / New) dan simpan sebagai game.fla. This is the design file that will contain the design and content for the game. Ini adalah file desain yang akan berisi desain dan konten permainan.

If you get stuck anywhere on this tutorial there is a finished game.fla at the bottom of this page that can be downloaded to see what things should look like. Jika Anda terjebak di manapun pada tutorial ini ada selesai game.fla di bagian bawah halaman ini yang dapat didownload untuk melihat hal-hal apa yang harus seperti.

Change the document properties (menu Modify/Document) so that the dimensions are 640 by 480 and so that the frame rate is 30 frames a second. Mengubah properti dokumen (menu Ubah / Dokumen) sehingga dimensi 640 x 480 dan agar frame rate adalah 30 frame per detik. The background co lour is assumed to be white. Latar belakang menjadi suram co diasumsikan putih.

We will start by creating the 5 initial objects needed to make the game work. Kita akan mulai dengan menciptakan 5 objek awal yang dibutuhkan untuk membuat permainan bekerja.

Draw the player's ship, the alien, the player's projectile, the alien's laser and an explosion on the same frame and layer. Menarik pemain kapal, orang asing, para pemain proyektil, si alien's laser dan sebuah ledakan pada frame yang sama dan lapisan.

Turn each drawing into a Movie Clip with its own instance name. Belok setiap gambar menjadi Movie Clip dengan nama contoh sendiri. I will explain below in more detail how this is done. Saya akan jelaskan di bawah secara lebih rinci bagaimana hal ini dilakukan. More advanced people can skip to the naming of the instances. Lebih maju orang dapat melompat ke contoh yang penamaan.

How to turn a drawing into a Movie Clip: Cara mengubah gambar menjadi Movie Clip:


1. 1. Select the drawing by dragging a box around it. Pilih gambar dengan menyeret sebuah kotak di sekitarnya.



2. 2. Convert to a Movie Clip by going to the menu and then Modify or Insert depending on the Flash version. Convert ke Movie Clip dengan pergi ke menu dan kemudian Ubah atau Insert tergantung pada versi Flash. Choose “Convert to Symbol”. Pilih "Convert to Symbol". Alternatively you could use the shortcut by pressing F8. Atau Anda bisa menggunakan cara pintas dengan menekan F8.

3. 3. Set the registration point as appropriate. Mengatur titik pendaftaran yang sesuai. For this tutorial you should set the registration point to be in the center for all move clips. Untuk tutorial ini, Anda harus menetapkan titik pendaftaran untuk berada di pusat untuk semua klip bergerak.

4. 4. Set the behavior as Movie Clip and choose an appropriate name. Mengatur perilaku sebagai Klip Video dan memilih nama yang sesuai. This name is not the instance name. Nama ini bukan nama contoh. Click here for an illustration. Klik di sini untuk ilustrasi.

5. 5. Select the new Movie Clip. Pilih Movie Clip yang baru. In the properties panel at the bottom set the instance name to whatever is needed. Pada panel properti di bagian bawah misalnya menetapkan nama untuk apa saja yang diperlukan.

The instance names are below: Nama yang contoh di bawah ini:

The Movie Clip for the player's ship is called PlayerShip The Movie Klip untuk kapal pemain disebut PlayerShip
The Movie Clip for the alien is called Alien The Movie Klip untuk asing disebut Alien
The Movie Clip for the player's projectile is called PlayerShotT The Movie Klip untuk pemain disebut proyektil PlayerShotT
The Movie Clip for the alien's laser is called AlienShotT The Movie Klip untuk laser asing disebut AlienShotT
The Movie Clip for the explosion is called ExplosionT The Movie Klip untuk ledakan disebut ExplosionT


Notice how there is a T at the end of certain instance names. Perhatikan bagaimana ada T di akhir nama contoh tertentu. This is a convenience to indicate that objects with a T at the end are to be used as templates for copies of themselves. Ini adalah kemudahan untuk menunjukkan bahwa objek dengan T di akhir ini harus digunakan sebagai template untuk salinan sendiri. This will be explained later. Ini akan dijelaskan kemudian.

Click here for a screenshot of a possible set up scene. Klik di sini untuk screenshot kemungkinan mendirikan adegan.

Let's make things happen Mari kita membuat sesuatu terjadi

We'll create some basic behaviors for our Movie Clip objects next. Kami akan menciptakan beberapa perilaku dasar bagi kami Klip Video objek berikutnya.

At the moment the player's ship isn't too responsive. Pada saat kapal pemain tidak terlalu responsif. We're going to change that. Kita akan mengubah itu.

Left click on the player's ship to select it. Waktu klik pada kapal pemain untuk memilihnya. Go to the Actions panel at the bottom and enter in the following code in the white part on the right: Tindakan pergi ke panel di bawah dan masukkan kode berikut di bagian putih di sebelah kanan:

onClipEvent(enterFrame) onClipEvent (enterFrame)
{ (
if(Key.isDown(Key.RIGHT)) { if (Key.isDown (Key.RIGHT)) (
//this will move the player 15 units to the right / / ini akan memindahkan pemain 15 unit ke kanan
this._x = this._x + 15; this._x = this._x + 15;
} else if (Key.isDown(Key.LEFT)) { ) Else if (Key.isDown (Key.LEFT)) (
//this will move the player 15 units to the left / / ini akan memindahkan pemain 15 unit ke kiri
this._x = this._x - 15; this._x = this._x - 15;
} )
} )

I'll give some explanation below as to what this code means. Saya akan memberikan beberapa penjelasan di bawah ini seperti apa kode ini berarti. Feel free to skip ahead of this explanation if you don't want to get heavily involved in ActionScript. Jangan ragu untuk langsung beralih penjelasan ini jika Anda tidak ingin terlibat dalam ActionScript.

A bit about ActionScript: Sedikit tentang ActionScript:


onClipEvent(enterFrame){} This is basically a container that's called a function. onClipEvent (enterFrame) () ini pada dasarnya adalah sebuah wadah yang disebut fungsi. This container holds code to be run within it. Memegang wadah ini kode untuk dijalankan di dalamnya. The function isn't executed or run until something else tells it to. Fungsi tersebut tidak dilaksanakan atau dijalankan sampai sesuatu yang lain mengatakan itu. “onClipEvent” is the name of the function. "OnClipEvent" adalah nama fungsi. Some names such as “onClipEvent” are reserved by Flash in order for certain things to run properly. Beberapa nama-nama seperti "onClipEvent" dicadangkan oleh Flash agar hal-hal tertentu untuk menjalankan dengan benar.

The text in between the two brackets “ ( “ and “ ) ”are any parameters that are passed to the function. Teks di antara dua kurung "(" dan ")" adalah setiap parameter yang dilewatkan ke fungsi. Parameters are passed from the source that executed it. Parameter yang dikirimkan dari sumber yang dieksekusi itu. There can be more than one parameter eg “(var1,test2)”. Terdapat lebih dari satu parameter misalnya "(var1, test2)". These parameters can usually be used within the function. Parameter-parameter ini biasanya dapat digunakan dalam fungsi. Parameters will be described in more detail later. Parameter akan dijelaskan secara lebih rinci nanti.

The stuff in between curly braces “ { ” and ” } ” is the actual code within the function that is executed. Barang-barang di antara kurung kurawal "(" dan ")" adalah kode aktual dalam fungsi yang dijalankan.

Things like “this._x= this._x + 15;” are called statements . Statements are bits of code that tells something to do something else. Hal-hal seperti "this._x = this._x + 15;" disebut pernyataan. Pernyataan adalah potongan kode yang mengatakan sesuatu untuk melakukan sesuatu yang lain. There is usually at most one statement every line. Biasanya ada paling banyak satu pernyataan setiap baris. Every statement must end with “;” so that Flash knows when the statement ends. Setiap pernyataan harus diakhiri dengan ";" sehingga Flash pernyataan tahu kapan berakhir.

Comments are ignored by Flash, but help the coder know what their code is doing. Komentar diabaikan oleh Flash, tetapi membantu coder tahu apa kode mereka lakukan. Comments begin with a “//” and continue for the entire line. Komentar dimulai dengan "/ /" dan melanjutkan untuk seluruh baris.

if(Key.isDown(Key.RIGHT)) {} This is called an if statement . This is basically a test to see if the stuff within the brackets is true. If the stuff is true then the code within the curly braces is run. if (Key.isDown (Key.RIGHT)) () Ini disebut jika pernyataan. Hal ini pada dasarnya adalah sebuah tes untuk melihat apakah barang-barang di dalam kurung adalah benar. Jika hal ini benar maka kode dalam kurung kurawal dijalankan .

else if (Key.isDown(Key.LEFT)) {} This can only go after the “if” statement or another “else if” statement. else if (Key.isDown (Key.LEFT)) () ini hanya bisa pergi setelah "jika" pernyataan atau lain "else if" pernyataan. Basically, if the stuff in the previous test is false, then the stuff in this “else if” statement is tested. Pada dasarnya, jika barang-barang di tes sebelumnya adalah salah, maka barang-barang dalam "else if" pernyataan diuji. If the test in the brackets is true than the code within the braces is executed. Jika tes dalam kurung adalah benar daripada kode dalam kurung dijalankan.


This little piece of code will let you move the ship around from left to right. Preview your flash animation (CTR-ENTER) and try moving the ship with the left and right arrow buttons. Sepotong kecil ini kode akan membiarkan Anda memindahkan kapal sekitar dari kiri ke kanan. Gambar animasi flash Anda (RKPT-ENTER) dan mencoba memindahkan kapal dengan tombol kiri dan kanan tombol panah.

The ship can move outside the boundaries so we need to add in a bit more code to restrict its movement. Kapal dapat bergerak di luar batas-batas jadi kita perlu menambahkan lebih banyak kode untuk membatasi gerakan.

Change the line: Ubah baris:

if(Key.isDown(Key.RIGHT )) { if (Key.isDown (Key.RIGHT)) (

to: untuk:

if(Key.isDown(Key.RIGHT) and this._x <> if (Key.isDown (Key.RIGHT) dan this._x <640)>


Also, change the line: Juga, ubah baris:

} else if (Key.isDown(Key.LEFT)) { ) Else if (Key.isDown (Key.LEFT)) (

to: untuk:

} else if (Key.isDown(Key.LEFT) and this._x > 0) { ) Else if (Key.isDown (Key.LEFT) dan this._x> 0) (


Preview your animation again. Preview animasi Anda lagi. This time the player ship should stay within the boundaries. Kali ini kapal pemain harus tetap berada dalam batas-batas.

Now would be a great time to place the player's ship around the bottom of the stage, as it will be firing upwards. Sekarang akan menjadi waktu yang tepat untuk menempatkan pemain kapal di bawah panggung, karena akan menembak ke atas.

Time to breathe some life into the alien. Waktu untuk bernapas beberapa kehidupan ke asing. Select the alien and put this code into the ActionScript part: Pilih asing dan masukkan kode ini ke dalam ActionScript bagian:

//this is triggered when the clip loads / / ini dipicu ketika klip beban
onClipEvent (load) onClipEvent (load)
{ (
xmove = random(15) - random(15); //comments can also go after statements xmove = random (15) - random (15); / / komentar bisa juga pergi setelah pernyataan
ymove = random(15) - random(15); //this sets the ymovement randomly ymove = random (15) - random (15); / / ini menentukan secara acak ymovement
this._x = random(640); //this sets the x and y position randomly this._x = random (640); / / ini menentukan posisi x dan y secara acak
this._y = random(480); this._y = random (480);
} )

//this is triggered every time a new frame is entered, in this case 30 times a sec / / ini dipicu setiap kali bingkai baru dimasukkan, dalam kasus ini 30 kali sebuah sec
onClipEvent (enterFrame) onClipEvent (enterFrame)
{ (
//lets move the alien around / / memungkinkan memindahkan asing di
this._x = this._x + xmove; this._x = this._x + xmove;
this._y = this._y + ymove; this._y = this._y + ymove;

//bounce the alien if it is out of bounds / / bouncing asing jika di luar batas
if(this._x > 640){xmove = Math.abs(xmove) * -1} if (this._x> 640) (xmove = Math.abs (xmove) * -1)
if(this._x < xmove =" Math.abs(xmove)} if (this._x <0) xmove =">
if(this._y > 480){ymove = Math.abs(ymove) * -1} if (this._y> 480) (ymove = Math.abs (ymove) * -1)
if(this._y < ymove =" Math.abs(ymove)} if (this._y <0) ymove =">
} )


Try running the game now. Cobalah menjalankan permainan sekarang. The alien should select a random direction and speed and bounce around the stage. Asing harus memilih acak arah dan kecepatan dan mental di sekitar panggung.

You should move the explosion, alien laser and player projectile off of the stage. Anda harus memindahkan ledakan, laser dan pemain asing proyektil turun dari panggung. This is because these are the templates that will be copied whenever necessary and so they will remain throughout the entire game. Hal ini karena ini adalah template yang akan disalin bila diperlukan dan sehingga mereka akan tetap sepanjang seluruh permainan.

Setting the score Pengaturan skor

Lets add some texts to display the score. Mari menambahkan beberapa teks untuk menampilkan skor. Select the text tool and create two text objects in one of the corners, stacked on top of each other. Pilih teks alat dan menciptakan dua objek teks di salah satu sudut, ditumpuk di atas satu sama lain. Write "Score:" in the top one and "High Score:" in the bottom one. Menulis "Nilai:" di atas satu dan "Tinggi Nilai:" di bawah satu.

Make sure that they are long enough to accommodate the text along with the score in a single line. Pastikan bahwa mereka cukup lama untuk menampung teks bersama-sama dengan skor dalam satu baris.

Change the properties in both text objects to be dynamic text. Ubah properti di objek teks menjadi teks dinamis. Set the "var" property to score in the score text and highscore in the highscore text. Mengatur "var" properti untuk mencetak gol dalam skor teks dan highscore di teks highscore.

The "var" property is the name of the root variable that the text objects will pull their data from to display. The "var" adalah nama properti dari akar variabel yang objek teks akan menarik data dari mereka untuk ditampilkan. For example, if the score variable is "score: 50" then that's what the score text will display. Sebagai contoh, jika nilai variabel "score: 50" maka itulah yang skor teks akan ditampilkan.

A new hope Harapan baru

Time to give our ship some offensive weaponry . Waktu untuk memberikan kapal kami beberapa persenjataan ofensif.

Select the frame that you are working in. This should be the first one on the left. Pilih bingkai yang sedang Anda masuk ini harus yang pertama di sebelah kiri.

Go to the Actions panel at the bottom and insert the following code: Tindakan pergi ke panel di bawah dan masukkan kode berikut:

//The stuff below this will only be executed once on this frame / / Hal-hal di bawah ini hanya akan dieksekusi sekali pada frame ini

//This will set the score and highscore to 0 on application start / / Ini akan menetapkan nilai dan highscore ke 0 pada aplikasi mulai
scorenumber = 0; scorenumber = 0;
highscorenumber = 0; highscorenumber = 0;

//This will create the arrays which basically stores stuff in numbered slots / / Ini akan menciptakan array yang pada dasarnya toko barang-barang di nomor slot
Explosions = new Array(); Ledakan = new Array ();
BadShots = new Array(); BadShots = new Array ();
PlayerShots = new Array(); PlayerShots = new Array ();

//This is to create the unique IDs / / Hal ini untuk menciptakan ID yang unik
PShotID = 0; PShotID = 0;
BShotID = 0; BShotID = 0;
ExplosionID = 0; ExplosionID = 0;

//This is to create the playershot timer, so that it only shoots when ready / / Hal ini untuk menciptakan playershot timer, sehingga hanya tunas ketika siap
PShotTimer = 0; PShotTimer = 0;

//This one is required because each instance works on its own "layer" / / Ini diperlukan karena setiap contoh karya sendiri "lapisan"
//Instances cant be on the same layer, hence the use of a unique ID / / Contoh cant be pada lapisan yang sama, maka penggunaan sebuah ID yang unik
UniqueID = 10; UniqueID = 10;

//This is to stop from entering the next frame in our timeline / / Hal ini untuk berhenti dari memasuki frame berikutnya dalam garis waktu
stop(); stop ();
//This stuff runs 30 times a second / / Hal ini berjalan 30 kali sedetik
this.onEnterFrame = function() this.onEnterFrame = function ()
{ (
//timer goes down every time the frame is entered again / / timer turun setiap kali frame dimasukkan lagi
if(PShotTimer > 0){ if (PShotTimer> 0) (
-- PShotTimer; - PShotTimer;
} )

//test for space key down / / test kunci ruang bawah
if(Key.isDown(Key.SPACE)) if (Key.isDown (Key.SPACE))
{ (
if(PShotTimer <> if (PShotTimer <1)
{ (
//increment the unique id and id for playershots / / increment id unik dan id playershots
PShotID = PShotID + 1; PShotID = PShotID + 1;
UniqueID = UniqueID + 1; UniqueID = UniqueID + 1;

//loop back to 1 if there are many shots existing / / loop kembali ke 1 jika ada banyak gambar yang ada
if (PShotID == 10) {PShotID = 1} if (PShotID == 10) (PShotID = 1)

//run function to make shot / / jalankan fungsi untuk membuat ditembak
PlayerShots[PShotID]= MakeObject("PShot",PlayerShotT,UniqueID,PlayerShip._x,PlayerShip._y); PlayerShots [PShotID] = MakeObject ( "PShot", PlayerShotT, UniqueID, PlayerShip._x, PlayerShip._y);
//Set the timer so that the player must wait 10 frames before firing again / / Set timer sehingga pemain harus menunggu 10 frame sebelum menembak lagi
PShotTimer = 10; PShotTimer = 10;
} )
} )
} )


//function to work out distance between objects / / fungsi untuk mengetahui jarak antara obyek
md = function (x1, y1, x2, y2) md = function (x1, y1, x2, y2)
{ (
x = x1 - x2 x = x1 - x2
y = y1 - y2 y = y1 - y2
var thing =Math.sqrt((x * x) + (y * y)) var hal = Math.sqrt ((x * x) + (y * y))
if (thing == 0) {thing = 999} if (hal == 0) (hal = 999)
return(thing); return (hal);
} )

//making instances or "copies" of the templates / / membuat contoh atau "salinan" dari template
MakeObject = function(instname,template,id,x,y) MakeObject = function (instname, template, id, x, y)
{ (
// make temporary variable / / Membuat variabel sementara
var temp; var temp;

//assign name / / nama menetapkan
var name = instname + id; var name = instname + id;

//make new instance from template / / membuat instance baru dari template
var temp = template.duplicateMovieClip(name, id); var temp = template.duplicateMovieClip (nama, id);

//set its x and y coordinates / / mengatur koordinat x dan y
setProperty (name, _x, x); setProperty (nama, _x, x);
setProperty (name, _y, y); setProperty (nama, _y, y);
//return the object to whatever called this function / / kembali objek untuk apa pun yang disebut fungsi ini
return temp; return temp;
} )


Double-click on your explosion that you made. Double-klik pada ledakan yang Anda buat. Now convert the explosion again into a Symbol and choose Graphic . Sekarang mengubah ledakan lagi menjadi Lambang dan pilih Graphic. You should now have a Graphic within a MovieClip for your explosion. Anda seharusnya sudah memiliki sebuah movieklip Grafik dalam ledakan Anda.

Create an animation to your liking that basically plays out the explosion from start to finish. Membuat animasi sesuai dengan keinginan anda bahwa pada dasarnya bermain keluar ledakan dari awal sampai akhir. On the last frame, put this code in: Pada frame terakhir, masukkan kode ini dalam:

this.onEnterFrame = function() this.onEnterFrame = function ()
{ (
this.removeMovieClip(); this.removeMovieClip ();
} )


This will remove the explosion once it finishes its animation. Ini akan menghapus ledakan setelah selesai dengan animasi. Click here for an example. Klik di sini untuk contoh.

This won't however remove the original explosion, only the instance. This is why you should keep this object away from the stage so that it is not seen. Namun hal ini tidak akan menghapus ledakan asli, hanya contoh. Inilah mengapa Anda harus menjaga objek ini jauh dari panggung sehingga tidak terlihat.

Go back to your scene by clicking something along the lines of Scene1 on the top left. Kembali ke TKP dengan mengklik sesuatu di sepanjang baris Scene1 di kiri atas.

Select the player's projectile and insert the following code: Pilih pemain proyektil dan masukkan kode berikut:

//this is triggered when the clip loads / / ini dipicu ketika klip beban
onClipEvent (load) onClipEvent (load)
{ (
xmove = random(5) - random(5); //comments can also go after statements xmove = random (5) - acak (5); / / komentar bisa juga pergi setelah pernyataan
ymove = (random(5) + 15) * -1; //this sets the ymovement randomly ymove = (random (5) + 15) * -1; / / ini menentukan secara acak ymovement
} )

//this is triggered every time a new frame is entered, in this case 30 times a sec / / ini dipicu setiap kali bingkai baru dimasukkan, dalam kasus ini 30 kali sebuah sec
onClipEvent (enterFrame) onClipEvent (enterFrame)
{ (
//lets move the player's shot around / / memungkinkan memindahkan pemain ditembak sekitar
this._x = this._x + xmove; this._x = this._x + xmove;
this._y = this._y + ymove; this._y = this._y + ymove;
//destroy this if it reaches the top / / menghancurkan ini jika mencapai puncak
if(this._y <> if (this._y <0)>

//test to see if this is colliding with the alien / / tes untuk melihat apakah ini bertabrakan dengan orang asing
col = _root.md(_x, _y, _root.Alien._x, _root.Alien._y) col = _root.md (_x, _y, _root.Alien._x, _root.Alien._y)

//you can change 40 to another number if shots seem to pass through / / Anda dapat mengubah 40 hingga nomor lain jika pengambilan tampaknya melewati
if(col <> if (col <40)
{ (
//increments the IDs and creates an explosion / / akan menambahkan ID dan menciptakan sebuah ledakan
//notice that _root. / / perhatikan bahwa _root. is put in front diletakkan di depan
++ _root.UniqueID + + _root.UniqueID
++ _root.ExplosionID + + _root.ExplosionID
_root.Explosions[_root.ExplosionID] = _root.MakeObject("Explosion",_root.ExplosionT,_root.UniqueID,_root.Alien._x,_root.Alien._y); _root.Explosions [_root.ExplosionID] = _root.MakeObject ( "Explosion", _root.ExplosionT, _root.UniqueID, _root.Alien._x, _root.Alien._y);

//"resets" the alien / / "reset" orang asing
_root.Alien._x = random(640) _root.Alien._x = random (640)
_root.Alien._y = random(480) _root.Alien._y = random (480)
_root.Alien.xmove = random(15) - random(15); //comments can also go after statements _root.Alien.xmove = random (15) - random (15); / / komentar bisa juga pergi setelah pernyataan
_root.Alien.ymove = random(15) - random(15); //this sets the ymovement randomly _root.Alien.ymove = random (15) - random (15); / / ini menentukan secara acak ymovement

//increases the score by one and updates the score variable for the text / / meningkatkan nilai oleh satu dan memperbarui variabel skor untuk teks
++_root.scorenumber; + + _root.scorenumber;
_root.score = "Score " + _root.scorenumber; //puts a string and number together _root.score = "Nilai" + _root.scorenumber; / / menempatkan sebuah string dan nomor bersama

//destroys this instance / / menghancurkan contoh ini
//once the instance is gone, no further actions can be performed / / setelah contoh hilang, tidak ada tindakan lebih lanjut dapat dilakukan
this.removeMovieClip(); this.removeMovieClip ();
} )
} )

Run the game now and use SPACEBAR to shoot. Menjalankan permainan sekarang dan Gunakan spasi untuk menembak. By now your ship moves around, shoots and blows up the alien on a direct hit. Sekarang kapal Anda bergerak di sekitar, tunas dan meledak asing di hit langsung. Only a couple more pieces of code left! Hanya beberapa potongan-potongan kode kiri!

The alien strikes back Pemogokan asing kembali

Aliens never come in peace, so select the alien and insert this code at the bottom, but before the end “ } ” brace: Aliens pernah datang dengan damai, jadi pilih yang asing dan menyisipkan kode ini di bagian bawah, tapi sebelum akhir ")" penjepit:

//this is to get the alien to fire randomly / / ini adalah untuk mendapatkan api asing secara acak
fire = random(20); api = random (20);

//one in 20 chance of firing every frame! / / satu dari 20 kesempatan menembak setiap bingkai!
if(fire == 1) if (kebakaran == 1)
{ (
_root.BShotID = _root.BShotID + 1; _root.BShotID = _root.BShotID + 1;
_root.UniqueID = _root.UniqueID + 1; _root.UniqueID = _root.UniqueID + 1;
//run function to make shot / / jalankan fungsi untuk membuat ditembak
_root.BadShots[_root.BShotID]= _root.MakeObject("BShot",_root.AlienShotT,_root.UniqueID,_root.Alien._x,_root.Alien._y); _root.BadShots [_root.BShotID] = _root.MakeObject ( "BShot", _root.AlienShotT, _root.UniqueID, _root.Alien._x, _root.Alien._y);
} )


The bottom of the alien's code should look something like this: Bagian bawah kode asing harus terlihat seperti ini:

Finally, select the alien's laser and add this code: Akhirnya, pilih alien's laser dan menambahkan kode ini:

//this is triggered when the clip loads / / ini dipicu ketika klip beban
onClipEvent (load) onClipEvent (load)
{ (
xmove = random(5) - random(5); //comments can also go after statements xmove = random (5) - acak (5); / / komentar bisa juga pergi setelah pernyataan
ymove = (random(5) + 15); //this sets the ymovement randomly ymove = (random (5) + 15); / / ini menentukan secara acak ymovement
} )

//this is triggered every time a new frame is entered, in this case 30 times a sec / / ini dipicu setiap kali bingkai baru dimasukkan, dalam kasus ini 30 kali sebuah sec
onClipEvent (enterFrame) onClipEvent (enterFrame)
{ (
//lets move the player's shot around / / memungkinkan memindahkan pemain ditembak sekitar
this._x = this._x + xmove; this._x = this._x + xmove;
this._y = this._y + ymove; this._y = this._y + ymove;

//destroy this if it reaches the top / / menghancurkan ini jika mencapai puncak
if(this._y > 480){this.removeMovieClip();} if (this._y> 480) (this.removeMovieClip ();)

//test to see if this is colliding with the player / / tes untuk melihat apakah ini bertabrakan dengan pemain
col = _root.md(_x, _y, _root.PlayerShip._x, _root.PlayerShip._y) col = _root.md (_x, _y, _root.PlayerShip._x, _root.PlayerShip._y)

//you can change 40 to another number if shots seem to pass through / / Anda dapat mengubah 40 hingga nomor lain jika pengambilan tampaknya melewati
if(col <> if (col <25)>
//increments the IDs and creates an explosion / / akan menambahkan ID dan menciptakan sebuah ledakan
//notice that _root. / / perhatikan bahwa _root. is put in front diletakkan di depan
++ _root.UniqueID + + _root.UniqueID
++ _root.ExplosionID + + _root.ExplosionID
_root.Explosions[_root.ExplosionID] = _root.MakeObject("Explosion",_root.ExplosionT,_root.UniqueID,_root.PlayerShip._x,_root.PlayerShip._y); _root.Explosions [_root.ExplosionID] = _root.MakeObject ( "Explosion", _root.ExplosionT, _root.UniqueID, _root.PlayerShip._x, _root.PlayerShip._y);

//"resets" the player's ship / / "reset" pemain kapal
_root.PlayerShip._x = random(640) _root.PlayerShip._x = random (640)

//checks to see if score greater than highscore, then updates / / cek untuk melihat apakah skor yang lebih besar daripada highscore, maka pembaruan
if(_root.scorenumber > _root.highscorenumber) if (_root.scorenumber> _root.highscorenumber)
{ (
_root.highscorenumber = _root.scorenumber; _root.highscorenumber = _root.scorenumber;
_root.highscore = "High Score: " + _root.highscorenumber; _root.highscore = "High Nilai:" + _root.highscorenumber;
} )
//resets the score to 0 and updates text / / me-reset skor untuk 0 dan update teks
_root.scorenumber = 0; _root.scorenumber = 0;
_root.score = "Score " + _root.scorenumber; _root.score = "Nilai" + _root.scorenumber;

//destroys this instance / / menghancurkan contoh ini
//once the instance is gone, no further actions can be performed / / setelah contoh hilang, tidak ada tindakan lebih lanjut dapat dilakukan
this.removeMovieClip(); this.removeMovieClip ();
} )
} )


Congratulations, you now have a functional game! Selamat, Anda sekarang memiliki permainan fungsional! Of course, this article barely scratches the surface of what is possible with Flash. Tentu saja, artikel ini nyaris goresan permukaan apa yang mungkin dengan Flash.

Addicting and complex games can be made with the wonderful tool known as flash, and as your first glimpse into Flash game design I hope it has been enjoyable. Permainan Addicting dan kompleks dapat dibuat dengan alat yang indah yang dikenal sebagai flash, dan saat pertama Anda melihat ke dalam Flash game desain saya harap sudah menyenangkan.

As for what to do next, I suggest adding in a nice background in a layer underneath the current layer to get rid of the dull white, and perhaps to examine some of the commented code that has been used. Sedangkan apa yang harus dilakukan selanjutnya, saya menyarankan untuk menambahkan di latar belakang yang bagus pada sebuah lapisan di bawah lapisan saat ini untuk menyingkirkan putih yang membosankan, dan mungkin untuk memeriksa beberapa kode komentar yang telah digunakan.

I hope you have enjoyed following this guide as much as I have enjoyed writing it. Saya harap Anda telah menikmati mengikuti panduan ini sebanyak saya menikmati menulisnya.

After you have had a chance to sit back and absorb this article, please send us your comments and suggestions - your feedback is greatly appreciated. Setelah Anda memiliki kesempatan untuk duduk kembali dan menyerap artikel ini, silahkan kirim komentar dan saran Anda - umpan balik Anda akan sangat dihargai.

Written By Damien D Ditulis Oleh Damien D

The source code is free for private and commercial purposes. Kode sumber gratis untuk pribadi dan tujuan komersial. However, no part of this page can be reproduced on another website without the written permission from GameInnovator.com Namun, tidak ada bagian dari halaman ini dapat direproduksi pada situs web lain tanpa izin tertulis dari GameInnovator.com

0 komentar:

Posting Komentar