| 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

Menggerakkan Object di dalam Game dengan AS3

Hampir setiap game memiliki gerakan objek di dalamnya. Dalam contoh ini gerakan object antara lain adalah gerakan papan, dan gerakan bola.



Gerakan bola di dalam tutorial ini adalah bergerak secara terus menerus dan memantul apabila tertabrak dinding arena atau tertabrak papan. Untuk membuatnya perhatikan cara berikut :

  1. Pada langkah sebelumnya kita telah menambahkan asset visual ke layar. Khusus untuk gambar bola_bmp.png ditambahkan secara khusus ke dalam movieclip ball, sehingga untuk menggerakkannya kita akan mengakses secara langsung movieclip ball.

  2. Untuk menggerakkan bola secara terus menerus diperlukan sebuah EventListener yaitu Event.ENTER_FRAME.
    Event ini merupakan sebuah fungsi yang akan dijalankan secara terus menerus oleh aplikasi sampai adanya perintah removeEventListener.
    Untuk menggerakan movieclip ball secara diagonal (lihat contoh di bawah), anda membutuhkan variabel speed_x dan variabel speed_y. Selain itu juga dibuat variabel is_goal yang bertipe Boolean sebagai persiapan kita untuk mengatur proses terjadinya gol. Pada file Main.as tambahkan kode baris 29 - 31 sebagai berikut :

  3. 		private var game:MovieClip;
    		
    		private var speed_x:Number = 0;
    		private var speed_y:Number = 0;
    		private var is_goal:Boolean = false;
    		
    		public function Main():void 
    		{ ....
    

  4. Selanjutnya untuk menambahkan event agar bola bergerak terus menerus pada fungsi setup() anda perlu mendefinisikan nilai variabel speed_x dan speed_y, serta menambahkan fungsiaddEventListener sebagai berikut :

  5. 		private function setup():void {
    			.....
    		
    			speed_x = Math.random() * 3+2;
    			speed_y = -20 + Math.random() * 10;
    			
    			game.addEventListener(Event.ENTER_FRAME, game_loop);
    		}
    
  6. Pada langkah di atas fungsi yang dijalankan oleh Event.ENTER_FRAME adalah fungsi game_loop. Fungsi inilah yang nantinya akan dijalankan secara terus menerusoleh aplikasi. Untuk membuat fungsi tersebut, tambahkan kode berikut :
  7. 		private function game_loop(e:Event):void {
    			if (!is_goal){
    				ball.x += speed_x;
    				ball.y += speed_y;
    				if (ball.y<30 || ball.y>770) speed_y*=-1;
    				if (ball.x<30 || ball.x>450) speed_x*=-1;				
    			}
    		} 
    
  8. Jalankan (ujicoba) aplikasi dengan menekan Ctrl+Enter apabila anda tidak menemui kendala, maka bola akan bergerak secara terus menerus akibat kordinat bola yang selalu ditambah dengan speed_x dan speed_y. Ketika bola "menabrak" dinding arena yaitu dengan menggunakan kondisi if (ball.y<30 || ball.y>770) maka variabel speed_y dibalik nilainya sehingga bola akan memantul.

Get Adobe Flash player

Secara keseluruhan kode pada Main.as adalah sebagai berikut :

package 
{
	import flash.display.Bitmap;
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	
	/**
	 * ...
	 * @author Wandah
	 */
	public class Main extends Sprite 
	{
		[Embed(source = "../bin/arena.jpg")]
		private var arena_bmp:Class;
		[Embed(source = "../bin/board_1.png")]
		private var board_1_bmp:Class;
		[Embed(source = "../bin/board_2.png")]
		private var board_2_bmp:Class;
		[Embed(source = "../bin/ball_bmp.png")]
		private var ball_bmp:Class;
		
		private var board_1:MovieClip;
		private var board_2:MovieClip;
		private var ball:MovieClip;
		
		private var game:MovieClip;
		
		private var speed_x:Number = 0;
		private var speed_y:Number = 0;
		private var is_goal:Boolean = false;
		
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			setup();
		}
		
		private function setup():void {
			game = new MovieClip();
			addChild(game);
			var arena:Bitmap = new arena_bmp();
			game.addChild(arena);
			
			board_1 = new MovieClip();
			var board_bmp:Bitmap = new board_1_bmp();
			board_bmp.x = -63;
			board_bmp.y = -11;
			board_1.addChild(board_bmp);
			board_1.x = 240;
			board_1.y = 650;
			game.addChild(board_1);
			
			board_2 = new MovieClip();
			board_bmp = new board_2_bmp();
			board_bmp.x = -63;
			board_bmp.y = -11;
			board_2.addChild(board_bmp);
			board_2.x = 240;
			board_2.y = 150;
			game.addChild(board_2);
			
			ball = new MovieClip();
			var ball_bitmap:Bitmap = new ball_bmp();
			ball_bitmap.x = -28;
			ball_bitmap.y = -28;
			ball.addChild(ball_bitmap);
			ball.x = 240;
			ball.y = 400;
			game.addChild(ball);
			
			speed_x = Math.random() * 3+2;
			speed_y = -20 + Math.random() * 10;
			
			game.addEventListener(Event.ENTER_FRAME, game_loop);
		}
		
		private function game_loop(e:Event):void {
			if (!is_goal){
				ball.x += speed_x;
				ball.y += speed_y;
				if (ball.y<30 || ball.y>770) speed_y*=-1;
				if (ball.x<30 || ball.x>450) speed_x*=-1;				
			}
		}
	}
	
}

Selanjutnya

Pada tahapan berikutnya kita akan menggerakkan papan pemain dengan input keyboard Mengerakkan Objek Game dengan Keyboard







Share ( Ayo Berbagi )

Leave me a comment

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