スプライトを使いこなそう! (3/5)
作成:2012-09-23 11:21
更新:2012-09-23 11:21
更新:2012-09-23 11:21
■キーボードで動かそう
キャラクタを動かせるようになったら、次に行うのは「ユーザーの操作に応じてキャラクタを動かす」ということでしょう。もっともインターフェイスとして多用されるのは「キーボード」でしょう。パソコンでは上下左右の矢印キーを使ってキャラクタを動かすことができます。
これも先にサンプルスクリプトを掲載しておきましょう。下のリスト欄のスクリプトを記述して実際に動かしてみて下さい。ページをロードすると、キャラクタが停止したままイメージを切り替えながら表示されます。上下左右の矢印キーを押すと、キャラクタを動かすことができます。
ここでは、ENTER_FRAMEのイベント処理部分で、キーが押された時の処理を追加しています。これは以下のようになっています。
Gameオブジェクトの中にある「input」というプロパティに、入力に関する情報が整理されています。この中の「up」「down」「left」「right」というプロパティに、それぞれ上下左右の矢印キーが押されているかどうかを示す値が保管されます。これらはいずれも真偽値で、trueならば押されている状態、falseならばキーが離されている状態であることを示します。
これらを個別にチェックし、trueならばそのキーが押されているものとして処理を用意すればよい、というわけです。今回の例では、moveByを使って位置を上下左右に移動させていた、というわけです。使い方がわかれば、キーによるキャラクタの移動は割と簡単ですね。
これも先にサンプルスクリプトを掲載しておきましょう。下のリスト欄のスクリプトを記述して実際に動かしてみて下さい。ページをロードすると、キャラクタが停止したままイメージを切り替えながら表示されます。上下左右の矢印キーを押すと、キャラクタを動かすことができます。
ここでは、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を使って位置を上下左右に移動させていた、というわけです。使い方がわかれば、キーによるキャラクタの移動は割と簡単ですね。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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ゲームプログラミング入門」に戻る