gpt4 book ai didi

typescript - 如何将物理添加到 Phaser 3 Sprite ?

转载 作者:行者123 更新时间:2023-12-03 19:30:32 25 4
gpt4 key购买 nike

我正在尝试实现 Phaser 3 documentation for physics sprites在 typescript 项目中,但这似乎没有预期的那么简单:

不工作

export class BMO extends Phaser.Physics.Arcade.Sprite {

constructor(scene) {
super(scene, 100,150, "bmo")
this.scene.add.existing(this)
}

create(){
this.setVelocity(100, 200);
this.setBounce(1, 1);
this.setCollideWorldBounds(true);
}
}

但是在创建 new BMO() 时 Sprite 没有物理。
物理引擎本身正在工作,因为我可以传递图像并且它可以工作:

工作
export class GameScene extends Phaser.Scene {

create(){
let logo = this.physics.add.image(400, 100, 'bmosmall')
logo.setVelocity(100, 200);
logo.setBounce(1, 1);
logo.setCollideWorldBounds(true);
}
}

使固定?

所以也许 Sprite 仍然需要手动添加到物理引擎(即使它是一个物理 Sprite ),但不可能将整个 Sprite 作为参数传递:
 export class BMO extends Phaser.Physics.Arcade.Sprite {
create(){
this.scene.physics.add.sprite(this)
}
}

如何创建 Phaser.Physics.Arcade.Sprite 实例?

最佳答案

我想你只需要添加 scene.physics.add.existing(this);到你的类(class)

export class BMO extends Phaser.Physics.Arcade.Sprite {

constructor(scene) {
super(scene, 100,150, "bmo")
scene.physics.add.existing(this); // add this line
this.scene.add.existing(this)
}

create(){
this.setVelocity(100, 200);
this.setBounce(1, 1);
this.setCollideWorldBounds(true);
}
}

关于typescript - 如何将物理添加到 Phaser 3 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55302007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com