AS本をベースに練習中

by TetsuroKato
れんしゅう

addChild(new Stats());

public class ShipSim extends Sprite{
private var ship:Ship;
private var vr:Number = 0;
private var thrust:Number =0;
private var vx:Number = 0;
private var vy:Number = 0;
public function ShipSim(){
init();
}

public function init():void{
graphics.beginFill(0);
graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
graphics.endFill();
ship = new Ship();
addChild(ship);
ship.x = stage.stageWidth / 2;
ship.y = stage.stageHeight / 2;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
}
private function onKeyDown(e:KeyboardEvent):void{
switch(e.keyCode){
case Keyboard.LEFT:
vr = -5;
break;

case Keyboard.RIGHT:
vr = 5;
break;

case Keyboard.UP:
thrust =0.2;
ship.draw(true);
break;

default:
break;
}

}
private function onKeyUp(e:KeyboardEvent):void{
vr = 0;
thrust =0;
ship.draw(false);
}
private function onEnterFrame(e:Event):void{
ship.rotatio
♥0 | Line 102 | Modified 2010-09-23 09:52:41 | MIT License
play

ActionScript3 source code

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

/*
れんしゅう
*/
package {
    import flash.display.AVM1Movie;
    
    import flash.display.Sprite;
    import flash.events.*;
    import flash.ui.Keyboard;
    import net.hires.debug.Stats;
    
    public class MouseEvents extends Sprite{
        private var ball:Ball;
        public function MouseEvents(){
            ball = new Ball();
            ball.x = 100;
            ball.y = 100;
            ball.graphics.beginFill(0);
            ball.graphics.drawRect(0,0,100,100);
            ball.graphics.endFill();
            addChild(ball);
            //addChild(new Stats());
            ball.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownBall);
            ball.addEventListener(MouseEvent.MOUSE_UP, onMouseUpBall);
            ball.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveBall);
            stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownStage);
            stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUpStage);
            stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveStage);
        }
        private function onMouseDownBall(e:MouseEvent):void{
            ball.draw(0xff0000);
        }
        private function onMouseUpBall(e:MouseEvent):void{
            ball.draw(0x0000ff);
        }
        private function onMouseMoveBall(e:MouseEvent):void{
            ball.draw(0x00ff00);
        }
        private function onMouseDownStage(e:MouseEvent):void{
            graphics.beginFill(0xff0000);
            graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
            graphics.endFill();
        }
        private function onMouseUpStage(e:MouseEvent):void{
            graphics.beginFill(0x0000ff);
            graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
            graphics.endFill();
        }
        private function onMouseMoveStage(e:MouseEvent):void{
            graphics.beginFill(0x00ff00);
            graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
            graphics.endFill();
        }

    }

/*    public class ShipSim extends Sprite{
        private var ship:Ship;
        private var vr:Number = 0;
        private var thrust:Number =0;
        private var vx:Number = 0;
        private var vy:Number = 0;
        public function ShipSim(){
            init();
        }

        public function init():void{
            graphics.beginFill(0);
            graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
            graphics.endFill();
            ship = new Ship();
            addChild(ship);
            ship.x = stage.stageWidth / 2;
            ship.y = stage.stageHeight / 2;
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
            stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
        }
        private function onKeyDown(e:KeyboardEvent):void{
            switch(e.keyCode){
                case Keyboard.LEFT:
                vr = -5;
                break;
                
                case Keyboard.RIGHT:
                vr = 5;
                break;
                
                case Keyboard.UP:
                thrust =0.2;
                ship.draw(true);
                break;
                
                default:
                break;
            }

        }
        private function onKeyUp(e:KeyboardEvent):void{
            vr = 0;
            thrust =0;
            ship.draw(false);
        }
        private function onEnterFrame(e:Event):void{
            ship.rotation += vr;
            var angle:Number = ship.rotation * Math.PI / 180;
            var ax:Number = Math.cos(angle) * thrust;
            var ay:Number = Math.sin(angle) * thrust;
            vx += ax;
            vy += ay;
            vx /= 1.1;
            vy /= 1.1;
            ship.x += vx;
            ship.y += vy;
        }


    }*/

    /*public class FlashTest extends Sprite {
        private var arrow:Arrow;
        private var speed:Number = 5;
        
        private var ball:Ball;
        private var bvx:Number = 0;
        private var bvy:Number = 0;
        private var bax:Number = 0;
        private var bay:Number = 0;
        
        public function FlashTest() {
            // arrow
            arrow = new Arrow();
            addChild(arrow);
            addEventListener(Event.ENTER_FRAME, onEnterFrameArrow);
            // ball
            ball = new Ball();
            addChild(ball);
            ball.x = stage.stageWidth/2;
            ball.y = stage.stageHeight/2;
            addEventListener(Event.ENTER_FRAME, onEnterFrameBall);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownBall);
            stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpBall);
        }
        private function onEnterFrameArrow(event:Event):void{
            var dx:Number = mouseX - arrow.x;
            var dy:Number = mouseY - arrow.y;
            var angle:Number = Math.atan2(dy,dx);
            arrow.rotation = angle * 180 / Math.PI;
            var vx:Number = Math.cos(angle) * speed;
            var vy:Number = Math.sin(angle) * speed;
            arrow.x += vx;
            arrow.y += vy;
            arrow.x = Math.min(stage.stageWidth, Math.max(0, arrow.x));
            arrow.y = Math.min(stage.stageHeight, Math.max(0, arrow.y));
        }
        
        private function onEnterFrameBall(event:Event):void{
            bvx += bax;
            bvy += bay;
            ball.x += bvx;
            ball.y += bvy;
            
            if(ball.x<0 || stage.stageWidth<ball.x){
                bvx *= -1;
            }
            if(ball.y<0 || stage.stageHeight<ball.y){
                bvy *= -1;
            }


        }
        private function onKeyDownBall(event:KeyboardEvent):void{
            switch(event.keyCode){
                case Keyboard.LEFT:
                bax = -0.2;
                break;
                
                case Keyboard.RIGHT:
                bax = 0.2;
                break;
                
                case Keyboard.UP:
                bay = -0.2;
                break;
                
                case Keyboard.DOWN:
                bay = 0.2;
                break;
            }

        }
        private function onKeyUpBall(event:KeyboardEvent):void{
            bax = 0;
            bay = 0;
        }


    }*/
}

import flash.display.Sprite;
class Arrow extends Sprite{
    public function Arrow():void{
        graphics.lineStyle(1,0,1);
        graphics.beginFill(0xffff00);
        graphics.moveTo(-50, -25);
        graphics.lineTo(0,-25);
        graphics.lineTo(0,-50);
        graphics.lineTo(50,0);
        graphics.lineTo(0,50);
        graphics.lineTo(0,25);
        graphics.lineTo(-50,25);
        graphics.lineTo(-50,-25);
        graphics.endFill();
    }

}

class Ball extends Sprite{
    private var radius:Number;
    private var color:uint;
    
    public function Ball(radius:Number=40, color:uint=0x0000ff){
        this.radius = radius;
        this.color = color;
        graphics.beginFill(color);
        graphics.drawCircle(0,0, radius);
        graphics.endFill();
    }
    public function draw(color:uint):void
    {
        this.color = color;
        graphics.beginFill(color);
        graphics.drawCircle(0,0, radius);
        graphics.endFill();
        
    }


}

class Ship extends Sprite{
    public function Ship(){
        draw(false);
    }

    public function draw(showFlame:Boolean):void{
        graphics.clear();
        graphics.lineStyle(1, 0xffffff);
        graphics.moveTo(10,0);
        graphics.lineTo(-10,10);
        graphics.lineTo(-5,0);
        graphics.lineTo(-10,-10);
        graphics.lineTo(10,0);
        
        if(showFlame){
            graphics.moveTo(-7.5, -5);
            graphics.lineTo(-15,0);
            graphics.lineTo(-7.5, 5);
        }
    }
}