12-Pas-12-Pas-an

24Feb10

Ngomong-ngomong soal game, kita yang kebanyakan berperan sebagai konsumen ini sekali-sekali mungkin perlu berpikir untuk menjadi produsen. Melihat game saat ini sudah menjadi industri yang cukup menjanjikan dengan potensi milyaran dolar [1]. Tertarik membuat game sendiri? mulai dari yang sederhana dulu, yuk mari.. 8)

Pada kesempatan ini game yang akan dibuat adalah latihan eksekusi penalti dari titik putih atau terkadang diistilahkan tendangan “12 pas” yang juga menjadi judul dari game ini. Sebelumnya unduh terlebih dulu gamenya di http://www.box.net/shared/qqdiij7gn1 untuk mencicipi (cukup 1.4 MB saja). Gamenya cupu abizz memang  dibandingkan buatannya game developer, tapi untuk mencapai langkah ke-1000 selalu diawali dengan langkah pertama, kan? ;)

Sekarang masuk ke pertanyaan, bagaimana cara membuat permainannya?

Disini saya membuat game menggunakan Flash yang umum digunakan untuk membuat game di web, dengan bahasa pemrograman ActionScript 2.0 yang lebih ramah kepada animator non-programmer yang kebanyakan berangkat dari basic desain (seperti saya ;P), jika sudah memahami dasar-dasarnya mari lanjut saja.

Pada library, sediakan 3 buah movieclip dengan memiliki identifier “kiperID”, “bolaID”, dan “pemainID” yang akan diattach ke tengah stage saat flash movie dijalankan.

Pada stage, siapkan background seperti pada gambar di bawah ini, perhatikan koordinat x dan y harus tepat karena menjadi acuan untuk berjalannya permainan. Siapkan pula movieclip dengan instance name “keterangan”.

Pada frame, sisipkan script berikut ini:

// Eksekusi 12 Pas
// A game by: F4154LMAN

mulai();

function mulai()
{
	var tenaga:Number = new Number();
	var posisiPemain:Number = new Number();
	var PosisiGerakKiper:Number = new Number();
	var PosisiBolaSemula:Number = new Number();
	var listenerKey:Object = new Object();

	attachSetScaleDanXY("kiperID", "kiper", 70, 330, 160, this.getNextHighestDepth());
	attachSetScaleDanXY("bolaID", "bola", 100, 150, 315, this.getNextHighestDepth());
	attachSetScaleDanXY("pemainID", "pemain", 100, 85, 300, this.getNextHighestDepth());

	bola.gotoAndStop("frameBiasa");
	keterangan.gotoAndStop("frameAwal");

	keterangan.onRelease = function()
	{
		removeMovieClip("pemain");
		removeMovieClip("bola");
		removeMovieClip("kiper");
		mulai();
	}

	listenerKey.onKeyDown = function()
	{
			posisiPemain = pemain._x;

			if(((kiper._x - 200) - posisiPemain) > 50)
			{
				posisiGerakKiper = -5;
			}
			else if(((kiper._x - 200) - posisiPemain) < -50)
			{
				posisiGerakKiper = 5;
			}
			else
			{
				posisiGerakKiper = 0;
			}

			kiper._x += posisiGerakKiper;

			if(Key.isDown(Key.LEFT))
			{
				pemain._x -= 10;
			}

			if(Key.isDown(Key.RIGHT))
			{
				pemain._x += 10;
			}

			if(pemain._x < 50 || pemain._x > 200)
			{
				pemain._x = posisiPemain;
			}

			if(Key.isDown(Key.SPACE))
			{
				tenaga = (Math.floor(Math.random() * (9)) + 6) * 10;
				bolaDitendang();
			}
	}
	Key.addListener(listenerKey);

	function attachSetScaleDanXY(id:String, namaBaru:String, skala:Number, xx:Number, yy:Number, depth:Number)
	{
		attachMovie(id, namaBaru, depth);
		setProperty(namaBaru, _xscale, skala)
		setProperty(namaBaru, _yscale, skala)
		setProperty(namaBaru, _x, xx);
		setProperty(namaBaru, _y, yy);
	}

	function bolaDitendang()
	{
		delete listenerKey.onKeyDown;
		posisiBolaSemula = bola._y;

		bola.onEnterFrame = function()
		{
			if(kiper._x - bola._x > 10)
			{
				posisiGerakKiper = -20;
			}
			else if(kiper._x - bola._x < -10)
			{
				posisiGerakKiper = 20;
			}
			else
			{
				posisiGerakKiper = 0;
			}

			kiper._x += posisiGerakKiper;
			kiper._rotation += posisiGerakKiper / 2;

			if(tenaga > 90)
			{
				kiper._y -= 1;
			}

			bola._y -= tenaga / 10;
			bola._x += (tenaga / 10) - ((posisiPemain - 150) / 10);

			setProperty(bola, _xscale, getProperty(bola, _y) / posisiBolaSemula * 100);
			setProperty(bola, _yscale, getProperty(bola, _y) / posisiBolaSemula * 100);

			if((posisiBolaSemula - bola._y) > (tenaga * 2))
			{
				delete bola.onEnterFrame;
				if(bola.hitTest(kiper.tangkapan))
				{
					keterangan.gotoAndStop("frameBlocked");
					bola.gotoAndStop("frameKena");
				}
				else if((bola._x > 200) && (bola._x < 500) && (bola._y > 60) && (bola._y < 200))
				{
					keterangan.gotoAndStop("frameGol");
				}
				else
				{
					keterangan.gotoAndStop("frameOut");
				}
			}
		}
	}
}

***

Footnote:

[1] http://en.wikipedia.org/wiki/Game_industry



26 Responses to “12-Pas-12-Pas-an”

  1. Mantap bro! Klo ini pake Flash ya, keren-keren… Kunjungi http://www.adjiesoft.wordpress.com untuk game pake AutoHotkey. Gak kalah seru deh!

    Salam kenal!

  2. Kreatip. keren bro. bikinnya pake flash y?? klw saya sih pake flash buat presentasi saja. hehe. :D

    salam kenal.

  3. 3 abie

    wah wah..

    akan langsung sya coba di ruma..

    makasi infonya..

    tetep bagi2 ilmu ya

  4. 4 H4ryo

    mksh mas bwt infonya!!!!
    slam knal

  5. 5 F4154LMAN

    @Adjiesoft
    Mantap jaya lah 8) ..

    @Den Hanafi
    Sumuhun akang, pake flash.. wah keren, saya mah suka hoream bikin presentasi pake flash teh..

    @abie
    hehe ok ^^

    @H4ryo
    sama2, mksh jg utk komentarnya!!!

  6. 6 hamzah

    bro…q g’ tau yg mana library_y..ne…atau hrus ada program_y dlu…

  7. 7 yohanes angga

    Bro thk’s ya berkat anda saya lulus kuliah….hahhaahha

    banyak materi action script dari anda…. maap saya cuma ambil analogi anda…..hehehhe

    Terus berkarya bung…..

  8. 8 Anom Prabantyo

    mas gimana sih caranya gae flash cs3 yg kita sudah buat dijadikan file exe?????
    supaya game yg kita buat bisa dimainkan di komputer lain yang tida ada flash cs3 nya

    TErima Kasih

  9. 9 F4154LMAN

    @hamzah
    Library itu panel yg isinya semua symbol2 di FLA, klik aja menu Window > Library

    @yohanes angga
    haha.. turut berbahagia, sekadar inspirasi saja kan ya? :D

    @Anom Prabayanto
    klik menu File > Publish Settings, ceklis pilihan “Windows Application”, terus klik publish atau Shift+F12 nanti .EXE-nya ada di folder yg sama dengan .FLA

  10. 10 dhizz

    wah lumayan buat coba2
    makasih udh kasih tw infonya mas
    lam knal

  11. 11 ari

    mas saya pengen buat satu game sederhana Flash aja,,,tapi saya kurang mengerti tolong ya ama kemurahan hatinya…mohon bantuannya ini untuk tugas saya
    in e-mail saya hari070229@yahoo.com

  12. 12 arthas

    progam dri mana aja tuh dapetnya gan………………..??????????

  13. 13 deva

    gimana cara update blog wordpress mas faisalman:?kasi tau dong.

  14. Mas maaf klo sya ngerepotin……
    saya bingung……
    kan saya buka Adobe Reader 9….
    habis itu saya ngak tau lgi mas…..
    tolong informasinya ya mas…..
    please saya jga mau berusaha untuk buat game……. :)

  15. Mampir ke sini ya klik aja

  16. minta link bahannya dong pliezzz

  17. Mas kapan ganti profilnya ? juga gimna cara download & install adobe flash player 9 nya?

  18. fatal muntadzor baguus (GOOOOD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)

  19. Mas saya masih belum ngerti :)
    download yg buat bikin gamenya itu ap?
    nmanya ap?
    saya cari flash malah gak ada
    tolong ksih web download flash yg buat 12 pas pasan yamas
    please ksih tau disini ajjh webnya ya mas please :)

  20. bang, itu pke software ap aj buat bkin gameny?

  21. 21 mas mada

    minta file fla nya dong… plese gan..

  22. 22 dimas

    gan download buat bikin games nya yg mana

  23. 23 rei

    mas,boleh share .fla nya?pengen belajar mas.. makasih

  24. 24 dicky

    Mas Faisal…saya cb bwt games seperti ini, berhasil jalan..
    tpi pas saya coba tambahin scene..trus pindah scene..knp movie clip org nya masih muncul jg y di scene berikut nya..???gmn cara nya biar org nya tidak muncul di scene berikut nya y mas..???


  1. 1 Membuat Media Interaktif dengan Flash « {F4154LMAN}
  2. 2 Ayo Buat Game Sendiri « TipsTutorialWordpress

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s


Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 932 pengikut lainnya.