Halaman

Ads 468x60px

.

Friday, May 20, 2016

Tugas Softskill

Game tembak tembakan sederhana


Code yang digunakan untuk membuat sasaran tembak

package{
    import flash.display.MovieClip;
    public class Musuh extends MovieClip{
        //default radius = 30
        private var radius:int = 30;
        public var id:int;
        public function Musuh(radius:int){
            this.radius = radius;
            //gambar kepala
            graphics.lineStyle(5,0xFFFFFF);
            graphics.beginFill(0xFF0000);
            graphics.drawCircle(0,0,radius);
            graphics.endFill();
            //gambar mata
            graphics.beginFill(0x00FF00);
            graphics.drawCircle(radius/3,-(radius/3),radius/5);
            graphics.drawCircle(-(radius/3),-(radius/3),radius/5);
            graphics.endFill();
            //gambar mulut
            graphics.moveTo(-(radius/3),radius/3);
            graphics.lineTo((radius/3),radius/3);
        }
    }
}

Code yang digunakan untuk membuat bidikan pada tembakan

package{
    import flash.display.Sprite;
    public class BidikanPoint extends Sprite{
        //default radius = 30
        private var radius:int = 30;
        public function BidikanPoint(radius:int){
            this.radius = radius;
            //gambar bulatan besar dan bulatan kecil
            graphics.lineStyle(5,0x000000);
            graphics.drawCircle(0,0,radius/3);
            graphics.drawCircle(0,0, radius);
            //gambar garis vertikal
            graphics.moveTo(0, (radius/3));
            graphics.lineTo(0, radius+10);
            graphics.moveTo(0, -(radius/3));
            graphics.lineTo(0, -(radius+10));
            //gambar garis horizontal
            graphics.moveTo((radius/3),0);
            graphics.lineTo(radius+10,0);
            graphics.moveTo(-(radius/3),0);
            graphics.lineTo(-(radius+10),0);
        }
    }
}

Code yang digunakan untuk membuat button pada game

package{
    import flash.display.Sprite;
    import flash.display.SimpleButton;
    import flash.display.Shape;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;
    public class Button extends Sprite{
        private var simpleButton:SimpleButton = new SimpleButton();
        private var textField:TextField = new TextField();
        private var textFormat:TextFormat = new TextFormat();
        private var downState:Shape = new Shape();
        private var overState:Shape = new Shape();
        private var upState:Shape = new Shape();
        private var hitTestState:Shape = new Shape();
        private var lebar:int;
        private var tinggi:int;
        private var color:uint;
        public function Button(label:String,color:uint){
            //format textField
            textFormat.bold = true;
            textFormat.size = 20;
            //label
            textField.defaultTextFormat=textFormat;
            textField.text = label;
            textField.autoSize = TextFieldAutoSize.LEFT;
            textField.selectable = false;
            textField.mouseEnabled = false;
            //init panjang dan lebar
            lebar = textField.width + 20; //10 pixel kanan & 10 pixel kiri
            tinggi = textField.height + 20;
            //initColor
            this.color = color;
            //init graphics
            drawDownState();
            drawOverState();
            drawUpState();
            drawHitTestState();
            //button
            simpleButton.downState = downState;
            simpleButton.overState = overState;
            simpleButton.upState = upState;
            simpleButton.hitTestState = hitTestState;
            addChild(simpleButton);
            //sesuaikan posisi x,y textField agar berada di tengah
            textField.x = -lebar/2+(lebar-textField.width)/2;
            textField.y = -tinggi/2+(tinggi-textField.height)/2;
            addChild(textField);
        }
        private function drawDownState(){
            downState.graphics.lineStyle(5,0x000000);
            downState.graphics.beginFill(color,1);
            downState.graphics.drawRoundRect(-lebar/2,-tinggi/2,lebar,tinggi,5,5);
            downState.graphics.endFill();
        }
        private function drawOverState(){
            overState.graphics.lineStyle(5,0x000000);
            overState.graphics.beginFill(0xFFFFFF,0.3);
            overState.graphics.drawRoundRect(-lebar/2,-tinggi/2,lebar,tinggi,5,5);
            overState.graphics.endFill();
        }
        private function drawUpState(){
            upState.graphics.lineStyle(5,0x000000);
            upState.graphics.beginFill(color,1);
            upState.graphics.drawRoundRect(-lebar/2,-tinggi/2,lebar,tinggi,5,5);
            upState.graphics.endFill();
        }
        private function drawHitTestState(){
            hitTestState.graphics.lineStyle(5,0x000000);
            hitTestState.graphics.beginFill(color,1);
            hitTestState.graphics.drawRoundRect(-lebar/2,-tinggi/2,lebar,tinggi,5,5);
            hitTestState.graphics.endFill();
        }
    }
}
Code untuk program utama pada game
package{
    import flash.display.Sprite;
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.events.Event;
    public class Main extends Sprite{
        private var tambahMusuhButton:Button = new Button("Tambah Objek",0x00FF00);
        private var arrayMusuh:Array = new Array();
        private var indexArray:int = 0;
        private var bidikanPoint:BidikanPoint = new BidikanPoint(40);
        public function Main(){
            //set posisi button diposisi 10 pixel dari sisi kiri dan 10 pixel dari sisi bawah
            tambahMusuhButton.x = 10+(tambahMusuhButton.width/2);
            tambahMusuhButton.y = (stage.stageHeight-10)-(tambahMusuhButton.height/2);
            tambahMusuhButton.addEventListener(MouseEvent.CLICK, tambahMusuhHandler);
            addChild(tambahMusuhButton);
        }
        private function tambahMusuhHandler(event:MouseEvent){
                var radiusMusuh:int = 50;
                arrayMusuh.push(new Musuh(radiusMusuh));
                //mengatur agar posisi objeck random di dalam stage
                arrayMusuh[indexArray].x = radiusMusuh+Math.random()*(stage.stageWidth-(2*radiusMusuh));
                arrayMusuh[indexArray].y = radiusMusuh+Math.random()*(stage.stageHeight-(2*radiusMusuh));
                arrayMusuh[indexArray].addEventListener(MouseEvent.MOUSE_OVER, tampilBidikanPoint);
                arrayMusuh[indexArray].addEventListener(MouseEvent.MOUSE_OUT, hapusBidikanPoint);
                arrayMusuh[indexArray].addEventListener(MouseEvent.CLICK, hapusMusuh);
                arrayMusuh[indexArray].id = indexArray;
                addChild(arrayMusuh[indexArray]);
                indexArray++;
        }
        private function hapusMusuh(event:MouseEvent){
            removeChild(arrayMusuh[event.target.id]);
        }
        private function tampilBidikanPoint(event:MouseEvent){
            bidikanPoint.x = mouseX;
            bidikanPoint.y = mouseY;
            addChild(bidikanPoint);
            addEventListener(Event.ENTER_FRAME, gantiPosisiBidikanPoint);
        }
        private function gantiPosisiBidikanPoint(event:Event){
            //berfungsi menghaluskan perpindahan Bidikan Point
            bidikanPoint.x = mouseX;
            bidikanPoint.y = mouseY;
        }
        private function hapusBidikanPoint(event:MouseEvent){
            removeChild(bidikanPoint);
            removeEventListener(Event.ENTER_FRAME, gantiPosisiBidikanPoint);
        }
    }
}
Source:
http://blog.hobbycoding.web.id/2011/03/18/game-tembak-tembakan-sederhana/