LoginSignup
0
0

More than 5 years have passed since last update.

Firefox OSでゲームアプリを動かしてみる!~ PHASERを使ってゲームアプリを動かしてみた (その3)~

Last updated at Posted at 2015-03-26

Firefox OSでゲームアプリを動かしてみる!~ PHASERを使ってゲームアプリを動かしてみた (その3)~

前回までで画面サイズの対応をして、Fx0でもゲームとして見れる画面になりました。

こんなかんじですね。
invaders-third.gif

タップ可能にする

元々、このINVADERSのサンプルはキーボードで操作するようになっているので、
今回はこれをタップで操作できるようにしていきます。

PHASERサンプルの中にMulti Touchというのがあり、
これをFx0のブラウザで開いてタップすると反応するので、タップの操作についてはこれを参考にしてみます。
2015-03-26_125105.png

サンプルソースはこちらにあります。
phaser-examples-master/examples/input/multi touch.js

サンプルのコメントを見ると、2つのポイントタップはデフォルトで入っているようす。

multitouch.js

    //  By default Phaser only starts 2 pointers (enough for 2 fingers at once)

今回は1ポイントだけタップできればよいので、game.input.pointer1を使ってタップ操作を対応しました。
game.input.pointer1のクラスのAPI を見るとタップ操作を検出するメソッド等があって、簡単に実装することができました。

修正した箇所は以下になります。
invaders.js


@@ -95,9 +95,6 @@ function create() {
     explosions.createMultiple(30, 'kaboom');
     explosions.forEach(setupInvader, this);
 
-    //  And some controls to play the game with
-    cursors = game.input.keyboard.createCursorKeys();
-    fireButton = game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR);
     
 }
 
@@ -149,17 +146,19 @@ function update() {
         //  Reset the player, then check for movement keys
         player.body.velocity.setTo(0, 0);
 
-        if (cursors.left.isDown)
+        // タップしたとき
+        if (game.input.pointer1.isDown)
         {
-            player.body.velocity.x = -200;
-        }
-        else if (cursors.right.isDown)
-        {
-            player.body.velocity.x = 200;
+           // タップしたx座標がプレイヤーより右のときは右に移動
+           if (game.input.pointer1.worldX > player.body.center.x) {
+             player.body.velocity.x = 200;
+           }
+           // タップしたx座標がプレイヤーより左のときは左に移動
+           else
+           {
+             player.body.velocity.x = -200;
+           }
         }
 
         //  Firing?
-        if (fireButton.isDown)
+        // タップしたときに弾を発射する
+        if (game.input.pointer1.justPressed(200))
         {
             fireBullet();
         }

修正後のINVADERS

タップでビームを発射してエイリアンを爆破したり、移動してエイリアンの弾をよけたりするゲームをFx0で動かすことができました。
invaders-fourth.gif

PHASERを使ってゲームアプリを動かしてみた (その1)
PHASERを使ってゲームアプリを動かしてみた (その2)
PHASERを使ってゲームアプリを動かしてみた (その4)

(1)enchant.jsを使ってみる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0