Phaser 3 为玩家创造 Class
Phaser 3 Creating Class for player
我正在使用 javascript 在 Phaser 3 中工作,并注意到我将所有代码集中在一个 class(scene1) 中,它已经扩展了 Phaser.Scene
我想知道如何为我的播放器创建一个 class 并在我的场景 1 class 中使用它来创建它的一个实例,这将有助于像这样清理我的代码:
this.player1 = this.add.sprite(100, 100, "playerImg", 0)
this.player1 = this.add.sprite(playerObj.x, playerObj.y, playerObj.image, 0)
选项 1:
您可以创建您的播放器 Class 扩展 .Sprite class,从您喜欢的任何物理类型,如下所示:
不要忘记在构造函数中传递场景!!!
//player.js
class Player extends Phaser.Physics.Arcade.Sprite {
constructor(scene, x, y) {
super(scene, x, y, 'Texture', 'Frame'); // The frame is optional
}
}
当您在实际场景文件上调用它时,将 this
作为参数传递,以将播放器添加到该实际场景中。
//scene.js
...
player = this.physics.add.existing(new Player(this, 100, 100));
查看文档 https://photonstorm.github.io/phaser3-docs/Phaser.Physics.Arcade.Sprite.html
选项 2:
另一种方法是扩展到 GameObjects.Sprite,像这样:
//Player.js
class Player extends Phaser.GameObjects.Sprite{
constructor(scene, x, y){
super(scene, x, y, 'Texture', 'Frame'); // The frame is optional
this.scene.add.existing(this);
}
}
调用传递场景,x和y作为参数
//Scene.js
...
player = this.scene.add.existing(new Player(this, 100, 100));
看看文档https://photonstorm.github.io/phaser3-docs/Phaser.GameObjects.Sprite.html
我正在使用 javascript 在 Phaser 3 中工作,并注意到我将所有代码集中在一个 class(scene1) 中,它已经扩展了 Phaser.Scene
我想知道如何为我的播放器创建一个 class 并在我的场景 1 class 中使用它来创建它的一个实例,这将有助于像这样清理我的代码:
this.player1 = this.add.sprite(100, 100, "playerImg", 0)
this.player1 = this.add.sprite(playerObj.x, playerObj.y, playerObj.image, 0)
选项 1:
您可以创建您的播放器 Class 扩展 .Sprite class,从您喜欢的任何物理类型,如下所示:
不要忘记在构造函数中传递场景!!!
//player.js
class Player extends Phaser.Physics.Arcade.Sprite {
constructor(scene, x, y) {
super(scene, x, y, 'Texture', 'Frame'); // The frame is optional
}
}
当您在实际场景文件上调用它时,将 this
作为参数传递,以将播放器添加到该实际场景中。
//scene.js
...
player = this.physics.add.existing(new Player(this, 100, 100));
查看文档 https://photonstorm.github.io/phaser3-docs/Phaser.Physics.Arcade.Sprite.html
选项 2:
另一种方法是扩展到 GameObjects.Sprite,像这样:
//Player.js
class Player extends Phaser.GameObjects.Sprite{
constructor(scene, x, y){
super(scene, x, y, 'Texture', 'Frame'); // The frame is optional
this.scene.add.existing(this);
}
}
调用传递场景,x和y作为参数
//Scene.js
...
player = this.scene.add.existing(new Player(this, 100, 100));
看看文档https://photonstorm.github.io/phaser3-docs/Phaser.GameObjects.Sprite.html