Phaser 将物理学应用于 Phaser.Sprite 的子 class (ES6)
Phaser applying physics to child class of Phaser.Sprite (ES6)
我正在尝试将 Gravity.Y 街机物理应用于角色 Class(Phaser.Sprite)。但是 gravity.y 并没有影响到 Sprite 并保持在原位。
应用物理有什么特定的顺序吗?
注意:在 game.add.existing(char)
之前和之后,我也尝试过 enable/apply 物理
1) 失败
扩展 Phaser.Sprite 字符的示例 class,
应用了 ARCADE 物理原理,但无法运行:
class Char extend Phaser.Sprite {
constructor(game,x,y){
super(game,x,y,'dude')
game.add.existing(this)
game.physics.arcade.enable(this)
this.body.gravity.y = 300
}
}
// calling it in create()
create(game){
game.physics.startSystem(Phaser.Physics.ARCADE)
var x = new Char(game,0,0)
}
2) 工作
然后尝试了正常的 Sprite 创建和 gravity.y 工作...
create(game){
game.physics.startSystem(Phaser.Physics.ARCADE)
var x = game.add.sprite(0,0,'dude')
game.physics.arcade.enable(x)
x.body.gravity.y=300
}
我不好
代码确实有效,
这是由于另一个设置 "fixedToCamera = true"
我正在尝试将 Gravity.Y 街机物理应用于角色 Class(Phaser.Sprite)。但是 gravity.y 并没有影响到 Sprite 并保持在原位。
应用物理有什么特定的顺序吗? 注意:在 game.add.existing(char)
之前和之后,我也尝试过 enable/apply 物理1) 失败
扩展 Phaser.Sprite 字符的示例 class,
应用了 ARCADE 物理原理,但无法运行:
class Char extend Phaser.Sprite {
constructor(game,x,y){
super(game,x,y,'dude')
game.add.existing(this)
game.physics.arcade.enable(this)
this.body.gravity.y = 300
}
}
// calling it in create()
create(game){
game.physics.startSystem(Phaser.Physics.ARCADE)
var x = new Char(game,0,0)
}
2) 工作
然后尝试了正常的 Sprite 创建和 gravity.y 工作...
create(game){
game.physics.startSystem(Phaser.Physics.ARCADE)
var x = game.add.sprite(0,0,'dude')
game.physics.arcade.enable(x)
x.body.gravity.y=300
}
我不好
代码确实有效, 这是由于另一个设置 "fixedToCamera = true"