1
0

More than 3 years have passed since last update.

Phaser3で複数のシーンを扱うときの物理(arcade)の追加方法!

Last updated at Posted at 2021-09-14

Phaser3の公式?のコード例的な場所には複数のシーンの切り替え+物理演算?(arcade)の追加の欲しかったドンピシャの情報が無く、this.うんちゃら....と書かれていて脳筋の数打ちゃで時間を浪費したのでもしよければ用です。
※出来てから気が付いたのですが、コード例の中にもドンピシャの情報はありました。

game = new Phaser.Game(config);で

//configの今回関わりそうな部分のみ抜粋
let config = 
{
    type: Phaser.AUTO,
    parent: 'game',
    physics: 
    {
      default: 'arcade',
      arcade: 
      {
        gravity: 
        {
                 debug: false,
           y: 300
        }
      }
    },
    scene: [
        Title_Scene,
        About_Scene,
        Game_Scene,
        ]
};
class Game_Scene extends Phaser.Scene {

    constructor() {
        super({
            key: 'Game_Scene'
        });
    }

    preload() {
        this.load.image('ball', 'img/ball.png');
    }

    create() {
    ball = this.physics.add.sprite(50, 50, 'ball');
    ball.body.velocity.set(150, 150);
    ball.body.collideWorldBounds = true;
    ball.body.bounce.set(1);
    }

    update() {
    }
}

で、画面の設定にもよると思いますが画面端で跳ね返るボールが出来ました!!!

ポイントは、
game.physics.startSystem(Phaser.Physics.ARCADE);
ball = game.add.sprite(50, 50, 'ball');
game.physics.enable(ball, Phaser.Physics.ARCADE);
のあたりをまとめて、
ball = this.physics.add.sprite(50, 50, 'ball');
の一行でどうにかしていることにあるんですかね...?

web上でスマホアプリみたいなゲームを作ろうとして、phaserの勉強がてらMNDのブロック崩しゲームを組み込んでみようとして陥った感じです。

広告で流れてくる鍵を引っこ抜いて溶岩でダバーするゲーム作りたいなと思って始めたphaserでしたがまだまだ道のりは長そうです...

1
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
1
0