Phaser 3 | ゲームのプレイ速度を変更する方法

2021-01-28Phaser 3 ゲーム,Phaser 3

Phaser 3 | ゲームのプレイ速度を変更する方法

Phaser3でのゲーム速度をグローバルに変更する方法のサンプルコードです。

この方法はゲーム全体の速度を調節したい場合や、倍速モードのような仕組みを実装するのに利用できます。

ゲームのプレイ速度を変更する方法

Phaser3でゲーム速度をグローバルに変更するには最大で3種類のコードをcreateに追加する必要があります。

create() {
	this.physics.world.timeScale = 1;
	this.tweens.timeScale = 1;
	this.time.timeScale = 1;
}

※動作確認した動作環境はPhaser3 v.3.20.1、physicsのarcadeになります

これらのコードは、記述したシーン内でのみ実行されます。

tweenをゲーム内に実装していなければ「tweens.timeScale」は不要です。

「time.timeScale」はtimeイベントだけでなくVelocityの動作速度も制御されますので必要な場合が多いと思います。

何故かはわかりませんが「physics.world.timeScale」は値が小さくなるほど、ゲーム速度は早くなり「tweens.timeScale」と「time.timeScale」は値が大きくなるほど早くなる仕様なので注意が必要です。

(多分ですが)「physics.world.timeScale」を「0.5」、「tweens.timeScale」と「time.timeScale」を「2.0」に設定する事で2倍速のゲーム速度になるかと思います。

create() {
	this.physics.world.timeScale = 0.5;
	this.tweens.timeScale = 2;
	this.time.timeScale = 2;
}