为了账号安全,请及时绑定邮箱和手机立即绑定

Phaser 3 为玩家创建类

Phaser 3 为玩家创建类

紫衣仙女 2022-10-21 10:35:39
我正在使用 javascript 在 Phaser 3 中工作,并注意到我将所有代码都放在一个类(scene1)中,该类已经扩展了 Phaser.Scene我想知道如何为我的播放器创建一个类并在我的 scene1 类中使用它来创建它的一个实例,这将有助于清理我的代码,如下所示:this.player1 = this.add.sprite(100, 100, "playerImg", 0)this.player1 = this.add.sprite(playerObj.x, playerObj.y, playerObj.image, 0)
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

选项1:


您可以从您想要的任何物理类型创建扩展 .Sprite 类的播放器类,如下所示:


不要忘记在构造函数中传递场景!!!


//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


查看完整回答
反对 回复 2022-10-21
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信