キーボードで操作するロケット

keybord_rocket



キーボードの矢印キーを押すことによってロケットが旋回や加速をするというものです
解説はつづきから






新規ファイル作成
ステージ設定はサイズを400×300、フレームレートを30に





まずは背景を設置





新規レイヤーを追加し、ロケットを描く
ムービークリップシンボルに変換し、インスタンス名をrocketに




新規レイヤー追加し、ActionScriptを記述



//キーを押してるかどうかを定義する変数
//初期状態は押してない
var leftArrow:Boolean = false;
var rightArrow:Boolean = false;
var upArrow:Boolean = false;

//ロケットの旋回速度
var rotationSpeed:Number = 10;

//ロケット加速度
var acceleration:Number = 0.2;

//X方向とY方向の速度の初期設定
var xSpeed:Number = 0;
var ySpeed:Number = 0;


addEventListener(Event.ENTER_FRAME,moveRocket);

//ロケット動きの設定
function moveRocket(e:Event):void {

    //ロケットの旋回の動きの設定
    //右矢印キーを押したとき時計回りに
    if (rightArrow) {
        rocket.rotation += rotationSpeed;
    }
    //左矢印キーを押したとき反時計回りに
    if (leftArrow) {
        rocket.rotation -= rotationSpeed;
    }

    //上矢印キーを押したときロケットの向きによって
    //X方向、Y方向の速度を増加
    if (upArrow) {
        xSpeed += Math.cos(Math.PI*rocket.rotation/180)*acceleration;
        ySpeed += Math.sin(Math.PI*rocket.rotation/180)*acceleration;
    }
    //ロケットの移動
    rocket.x +=  xSpeed;
    rocket.y +=  ySpeed;

    //ロケットがステージ外に出たときの設定
    if (rocket.x > stage.stageWidth) {
        rocket.x = 0;
    }
    if (rocket.x < 0) {
        rocket.x = stage.stageWidth;
    }
    if (rocket.y > stage.stageHeight) {
        rocket.y = 0;
    }
    if (rocket.y < 0) {
        rocket.y = stage.stageHeight;
    }
}

//キーが押されたときの設定
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
function keyDownHandler(e:KeyboardEvent):void {

    //左矢印キーが押されたらtrueにして押されている状態に
    if (e.keyCode == Keyboard.LEFT) {
        leftArrow = true;

    //右矢印キーが押されたらtrueにして押されている状態に
    } else if (e.keyCode == Keyboard.RIGHT) {
        rightArrow = true;

    //上矢印キーが押されたらtrueにして押されている状態に
    } else if (e.keyCode == Keyboard.UP) {
        upArrow = true;
    }
}

//キーを離したときの設定
stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
function keyUpHandler(e:KeyboardEvent):void {

    //左矢印キーを離したらfalseにして押されていない状態に
    if (e.keyCode == Keyboard.LEFT) {
        leftArrow = false;

    //右矢印キーを離したらfalseにして押されていない状態に
    } else if (e.keyCode == Keyboard.RIGHT) {
        rightArrow = false;

    //上矢印キーを離したらfalseにして押されていない状態に
    } else if (e.keyCode == Keyboard.UP) {
        upArrow = false;
    }
}


これでムービープレビューすると以下のようになってるかと思います







以上、キーボードで操作するロケットの作り方でした