我正在使用Phaser创建游戏。当用户按下向下箭头时,我想要改变角色的物理大小,然后在1秒后返回原大小。
我编写了可行的代码,但角色会掉出屏幕,因为他处于一个对象中。所以我需要将他拉起来并改变物理大小。
使用以下代码:
我编写了可行的代码,但角色会掉出屏幕,因为他处于一个对象中。所以我需要将他拉起来并改变物理大小。
使用以下代码:
else if (this.cursors.down.isDown) {
this.jim.body.setSize(226, 150, 0, 0);
this.timerCrouch= this.game.time.events.add(Phaser.Timer.SECOND * 1.25, jimСrouch, this);
this.timerCrouch.timer.start();
}
function jimСrouch() {
this.jim.body.setSize(226, 285, 0, 0);
this.jim.body.y = this.jim.body.y + 150;
};
角色没有上升,但在日志中jim.body.y
的值发生了变化,并返回到之前的值。
如何修复这个问题?谢谢!
jim
移回去(jim.body.y
不断向下移动)。我还认为,与其移动实际精灵,你可以只改变边界框的大小。请参见http://phaser.io/examples/v2/arcade-physics/offset-bounding-box以获取示例。蹲下?那么碰撞框就是角色精灵的底半部分,例如。 - James Skemp