| Tutorial Flash - HTML5 - Javascript - DKV

Latest Blog



06.07.2022

MPI Component

Library untuk pengembangan multimedia interaktif dengan Flash/Animate

23.10.2020

Virtual Lab Flash

Library untuk pengembangan laboratorium virtual dengan Flash/Animate

06.10.2020

Game Among Us

Membuat gerakan karakter seperti pada game Among Us

05.10.2020

Multimedia Interaktif Tata Surya

Membuat Multimedia Pembelajaran Interaktif tentang tata surya

04.10.2020

Animasi Rotasi Bumi 3D

Membuat animasi bumi berotasi dengan grafik 3 Dimensi

01.10.2020

Membuat Kuis Essay

Mengecek jawaban kuis essay pada aplikasi pembelajaran interaktif

12.09.2020

Membuat Game Ular Tangga

Membuat game ular tangga dengan Adobe Flash/Animate AS3

10.09.2020

Membuat Pengacak Dadu

Membuat acak dadu untuk game ular tangga/monopoly

13.07.2020

Membuat Game Onet

Membuat game mencari gambar yang sama (onet) dengan JS/HTML5

11.06.2020

Membuat Kuis CBT

Membuat kuis CBT, menyimpan nilai ke server dengan PHP dan XML


ALL BLOG

Latest Games


;
Free Games

Indonesia Soccer League

Play Indonesian Soccer League on Flash 3D Games


Membuat Game mencari gambar yang sama bagian 3

Pada bagian ini akan dijelaskan tentang penambahan judul dan efek menang. Hasil yang diharapkan dari tutorial ini adalah sebuah game mencari gambar yang sama yang berfungsi dan tinggal ditambahkan suara saja:



A. Menyiapkan asset gambar

Untuk keperluan tutorial ini dibutuhkan 2 buah gambar yaitu judul.png dan menang.png. Selanjutnya 2 gambar tersebut disimpan di dalam folder "assets", sehingga dalam folder assets terdapat 4 buah gambar yang digunakan di dalam game. Perhatikan gambar berikut :

B. Mengedit file game.js

  1. Pada file game.js diperlukan penambahan kode untuk penambahan halaman judul dan halaman ketika menang, sehingga secara keseluruhan file game.js berisi kode sebagai berikut :

  2. setgame("800x600");
    
    //file gambar yang dipakai dalam game
    var gambar = {
    	deck:"card-deck.png",
    	cards:"cards.png",
    	judul:"judul-cocokan-gambar.png",
    	menang:"menang.png"
    }
    //file suara yang dipakai dalam game
    var suara = {	
    }
    
    //load gambar dan suara lalu jalankan aturGame
    loading(gambar, suara, aturGame);
    
    function aturGame(){		
    	//atur jumlah gambar maksimal yang bisa muncul
    	game.kartuMax = 10;
    	//atur jumlah kartu di layar (misal 20 kartu)
    	game.kartuX = 5;
    	game.kartuY = 4;
    	//seting kartu
    	game.kartuBenar = 0;
    	game.jumlahKartu = game.kartuX*game.kartuY;
    	game.kartuDB = [];
    	var jenisKartu = 0;
    	for (var i = 1; i<=game.jumlahKartu/2; i++){
    		jenisKartu++;
    		if (jenisKartu>game.kartuMax) jenisKartu = 1;
    		//buat objek baru untuk menyimpan data kartu
    		var card = {};
    		//pengaturan ukuran gambar kartu
    		card.lebar = 128;
    		card.tinggi = 128;
    		card.jenisKartu = jenisKartu;
    		//status kartu 0 = tertutup 1=terbuka 2=flip buka 3=flip tutup
    		card.stat = 0;
    		game.kartuDB.push(card);
    		//buat kartu kedua dengan data yang sama, karena pasti ada 2 kartu yang sama
    		var card2 = {};
    		card2.lebar = 128;
    		card2.tinggi = 128;
    		card2.jenisKartu = jenisKartu;
    		card2.stat = 0;
    		game.kartuDB.push(card2);
    	}
    
    	//acak kartu
    	game.kartuDB = acakArray(game.kartuDB);
    
    	//tambahkan data gambar kartu tertutup
    	dek = {img:dataGambar.deck, lebar:128, tinggi:128}
    	game.kartuTerbuka = 0;
    	//setelah kartu diacak, ditampilkan tampilkan judul game
    	game.mulai = false;
    	game.menang = false;
    	jalankan(judul);
    }
    
    function judul(){	
    	//menampilkan judul game
    	hapusLayar("#0784a9");
    	latar(dataGambar.cards, 1,1);
    	efekMasuk("judul", dataGambar.judul, game.lebar/2, game.tinggi/2-50, "kiri");
    	teks("Klik untuk memulai permainan", game.lebar/2, game.tinggi/2, "15-tengah-putih|biru-kedip");
    	if (game.mouseDitekan && !game.mulai){
    		game.mulai = true;
    		game.mouseDitekan = false;
    		jalankan(gameLoop);
    	}
    }
    
    function menang(){	
    	efekMasuk("judul2", dataGambar.judul, game.lebar/2, game.tinggi/2-50, "kanan");
    	efekMasuk("menang", dataGambar.menang, game.lebar/2, game.tinggi/2+50, "kiri");
    	teks("Klik untuk mengulang", game.lebar/2, game.tinggi/2+100, "15-tengah-putih|biru-kedip");
    	if (game.mouseDitekan && game.mulai){
    		game.mulai = false;
    		game.mouseDitekan = false;
    		aturGame();
    	}
    }
    
    function gameLoop(){
    	hapusLayar();
    	//tampilkan kartu via for 2 tingkat
    	for (var i=0;i<game.kartuX;i++){
    		for (var j=0;j<game.kartuY;j++){
    			//pengaturan gambar kartu
    			var id = i*game.kartuY+j;
    			var card = game.kartuDB[id];
    			if (card.stat == 0) {
    				card.img = dataGambar.deck;
    				card.frame = 1;
    			}else if (card.stat == 1){
    				card.img = dataGambar.cards;
    				card.frame = card.jenisKartu;
    			}		
    			card.id = id;
    			//berikan jarak  pixel antar kartu
    			card.x = 140+i*(card.lebar+5);
    			card.y = 100+j*(card.tinggi+5);					
    			if (card.stat<2) sprite(card);	
    			if (card.stat == 2) flip(card);
    			if (card.stat == 3) flipBalik(card);
    			//deteksi jika di klik
    			if (game.mouseDitekan && game.kartuTerbuka<2){
    				if (cekHit(game.mouse, card) && card.stat == 0 ){
    					card.stat = 2;
    					game.kartuTerbuka++;
    					if (game.kartuTerbuka == 1) game.kartu1 = card;
    					if (game.kartuTerbuka == 2) game.kartu2 = card;
    					card.buka = 1;
    					card.skalaX = 1;
    					//waktu untuk menunggu jika kartu tidak cocok
    					game.timer = 200;
    				}
    			}
    			cekKartu();			
    		}
    	}	
    	if (game.menang) menang();
    }
    
    function flip(card){
    	card.buka++;
    	//efek balik kartu
    	if (card.buka<10){
    		card.img = dataGambar.deck;	
    		card.skalaX-=0.1;
    		if (card.skalaX <=0) card.buka = 10;
    	}else if (card.buka>=10 && card.buka < 20){
    		card.img = dataGambar.cards;
    		card.frame = card.jenisKartu;
    		card.skalaX+=0.1;
    		if (card.skalaX > 1) card.buka = 20;
    	}else if (card.buka >= 20){
    		card.skalaX = 1;
    		card.img = dataGambar.cards;
    		card.frame = card.jenisKartu;
    		//kartu terbuka 		
    		card.stat = -1;					
    	}
    	sprite(card);
    }
    
    function flipBalik(card){
    	card.buka++;
    	//efek balik kartu
    	if (card.buka<10){
    		card.img = dataGambar.cards;
    		card.frame = card.jenisKartu;		
    		card.skalaX-=0.1;
    		if (card.skalaX <=0) card.buka = 10;
    	}else if (card.buka>=10 && card.buka < 20){
    		card.img = dataGambar.deck;
    		card.frame = 1;
    		card.skalaX+=0.1;
    		if (card.skalaX > 1) card.buka = 20;
    	}else if (card.buka >= 20){
    		card.skalaX = 1;
    		card.img = dataGambar.deck;
    		card.frame = card.jenisKartu;
    		//kartu tertutup
    		card.stat = 0;
    		game.kartuTerbuka=0;
    	}
    	sprite(card);
    }
    
    function cekKartu(){
    	//pastikan semua kartu sudah terbuka sempurna
    	if (game.kartuTerbuka == 2 && game.kartu1.stat == -1 && game.kartu2.stat == -1){		
    		if (game.kartu1.jenisKartu == game.kartu2.jenisKartu){
    			//pilihan kartu benar
    			game.kartuBenar+=2;
    			game.kartuTerbuka = 0;
    			//menang
    			if (game.kartuBenar>=game.jumlahKartu){
    				//permainan selesai dan menang
    				game.menang = true;
    			}				
    		}else{
    			//tunggu sesaat untuk menutup kembali
    			game.timer--;			
    			if (game.timer == 0){
    				game.kartu1.stat = 3;
    				game.kartu2.stat = 3;
    				game.kartu1.buka = 1;
    				game.kartu2.buka = 1;					
    			}
    		}
    	}
    }
    

  3. Simpan dengan nama game.js
  4. Jalankan file game.html dengan cara membukanya di browser untuk memainkan game. Jika proses benar, maka akan menghasilkan game seperti di atas, dan langkah terakhir anda tinggal menambahkan suara pada game tersebut

File sumber : File JS dan HTML

Share ( Ayo Berbagi )

Leave me a comment

untuk pertanyaan lebih baik di email langsung ke wandah [at] wandah [dot] com agar cepat direspon