libro
www.tuyano.com
初心者のためのenchant.jsゲームプログラミング入門

スプライトを使いこなそう! (3/5)

作成:2012-09-23 11:21
更新:2012-09-23 11:21

■キーボードで動かそう

キャラクタを動かせるようになったら、次に行うのは「ユーザーの操作に応じてキャラクタを動かす」ということでしょう。もっともインターフェイスとして多用されるのは「キーボード」でしょう。パソコンでは上下左右の矢印キーを使ってキャラクタを動かすことができます。

これも先にサンプルスクリプトを掲載しておきましょう。下のリスト欄のスクリプトを記述して実際に動かしてみて下さい。ページをロードすると、キャラクタが停止したままイメージを切り替えながら表示されます。上下左右の矢印キーを押すと、キャラクタを動かすことができます。

ここでは、ENTER_FRAMEのイベント処理部分で、キーが押された時の処理を追加しています。これは以下のようになっています。
if (game.input.up){ ……略…… }
if (game.input.down){ ……略…… }
if (game.input.left){ ……略…… }
if (game.input.right){ ……略…… }

Gameオブジェクトの中にある「input」というプロパティに、入力に関する情報が整理されています。この中の「up」「down」「left」「right」というプロパティに、それぞれ上下左右の矢印キーが押されているかどうかを示す値が保管されます。これらはいずれも真偽値で、trueならば押されている状態、falseならばキーが離されている状態であることを示します。

これらを個別にチェックし、trueならばそのキーが押されているものとして処理を用意すればよい、というわけです。今回の例では、moveByを使って位置を上下左右に移動させていた、というわけです。使い方がわかれば、キーによるキャラクタの移動は割と簡単ですね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

enchant();

window.onload = function(){
    var game = new Game(400, 300);
    game.preload("character2.png");
    game.fps = 20;

    game.onload = function(){
        var char1 = new Sprite(100, 100);
        char1.image = game.assets["character2.png"];
        char1.x = 0;
        char1.y = 0;
        char1.addEventListener(enchant.Event.ENTER_FRAME, function(){
            this.frame = this.age % 2;
            if (game.input.up){ this.moveBy(0, -5); }
            if (game.input.down){ this.moveBy(0, 5); }
            if (game.input.left){ this.moveBy(-5, 0); }
            if (game.input.right){ this.moveBy(5, 0); }
        });
        game.rootScene.backgroundColor = "#ffaaaa";
        game.rootScene.addChild(char1);
    };
    game.start();
};

※関連コンテンツ

「初心者のためのenchant.jsゲームプログラミング入門」に戻る