Geo-Asteroids

by Patrik-Malik forked from Snake Game (diff: 16)
Game
♥0 | Line 119 | Modified 2011-10-17 06:49:52 | MIT License
play

ActionScript3 source code

/**
 * Copyright Patrik-Malik ( http://wonderfl.net/user/Patrik-Malik )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/qKHw
 */

// forked from Patrik-Malik's Anaconda
//frogs, rodents, turtles and small mammals
//rabbits, foxes, birds
package {
    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.events.Event;
    
    import flash.display.Sprite;
    import flash.events.KeyboardEvent;
    
    public class FlashTest extends Sprite {
        private var hlava:Sprite;
        private var oko:Sprite;
        public var polomer:int = 10;
        
        // Musim zmenit na array
        public var varRight:Boolean = false;
        public var varLeft:Boolean = false;
        public var varUp:Boolean = false;
        public var varDown:Boolean = false;
        
        public var xRýchlosť:Number = 5;
        public var yRýchlosť:Number = 5;
        
        private var speed:Number = 0.3;
        private var rotateSpeed:Number = 5;
        private var vx:Number = 0;
        private var vy:Number = 0;
        private var friction:Number = 0.95;
        
        public function FlashTest() {
            // write as3 code here..
            hlava=new Sprite();
            hlava.graphics.beginFill(0x0000FF);
            hlava.graphics.drawCircle(0, 0, polomer);
            hlava.graphics.endFill();
            hlava.x=100;
            hlava.y=100;
            hlava.rotation=-90;
            
            oko=new Sprite();
            oko.graphics.beginFill(0xFFFFFF);
            oko.graphics.drawCircle(0, 0, 7);
            oko.graphics.endFill();
            oko.x=(polomer/2);
            oko.y=0;
            hlava.addChild(oko);
            
            addChild(hlava);
            
            stage.addEventListener(Event.ENTER_FRAME, pohyb);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, naStlačenieKlávesy);
            stage.addEventListener(KeyboardEvent.KEY_UP, naUvoľnenieKlávesy);
        }
        public function naStlačenieKlávesy(event:KeyboardEvent):void {
            if (event.keyCode == 39) {
                varRight = true;
            }
            if (event.keyCode == 37) {
                varLeft = true;
            }
            if (event.keyCode == 38) {
                varUp = true;
            }
            if (event.keyCode == 40) {
                varDown = true;
            }
        }
        public function naUvoľnenieKlávesy(event:KeyboardEvent):void {
            if (event.keyCode == 39) {
                event.keyCode = 0;
                varRight=false;
            }
            if (event.keyCode == 37) {
                event.keyCode = 0;
                varLeft=false;
            }
            if (event.keyCode == 38) {
                event.keyCode = 0;
                varUp=false;
            }
            if (event.keyCode == 40) {
                event.keyCode = 0;
                varDown=false;
            }
        }
        public function pohyb(event:Event):void{
            if (varRight == true)
            {
                //hlava.x += xRýchlosť;
                hlava.rotation += rotateSpeed;
            }
            if (varLeft == true)
            {
                //hlava.x -= xRýchlosť;
                hlava.rotation -= rotateSpeed;
            }
            if (varUp == true)
            {
                //hlava.y -= yRýchlosť;
                vy += Math.sin(degreesToRadians(hlava.rotation)) * speed;
                vx += Math.cos(degreesToRadians(hlava.rotation)) * speed;
            }
            else {
                vy *= friction;
                vx *= friction;
            }
            if (varDown == true)
            {
                //hlava.y += yRýchlosť;
            }
            hlava.x += vx;
            hlava.y += vy;
            
            if(hlava.x-polomer < 0)
            {
                hlava.x=stage.stageWidth-polomer;
            }
            else if(hlava.x+polomer > stage.stageHeight)
            {
                hlava.x=polomer;
            }
            if(hlava.y-polomer < 0)
            {
                hlava.y = stage.stageHeight-polomer;
            }
            else if(hlava.y > stage.stageHeight)
            {
                hlava.y = polomer;
            }
        }
        public function degreesToRadians(degrees:Number) : Number
        {
            return degrees * Math.PI / 180;
        }
    }
}