当底层精灵在Phaser

时间:2017-03-11 23:28:33

标签: phaser-framework

在此链接上有一个使用Phaser开发的游戏示例 http://examples.phaser.io。 你的坦克是一个带有炮塔精灵的精灵:

//  The base of our tank
tank = game.add.sprite(0, 0, 'tank', 'tank1');
tank.anchor.setTo(0.5, 0.5);

...

//  Finally the turret that we place on-top of the tank body
turret = game.add.sprite(0, 0, 'tank', 'turret');
turret.anchor.setTo(0.3, 0.5);
..

还要在执行每一帧的更新函数中注意以下内容:

turret.x = tank.x;
turret.y = tank.y;

请注意,当你加速时,炮塔会稍微滞后,只有当你达到零速度时才会赶上底层坦克精灵。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

有点迟了..你应该考虑你的精灵使用在不同部分呈现的物理。尝试查看API DOC preUpdate,postUpdate,Phaser.World。

因此,在您的情况下,如果您使用例如ARCADE Physics,您应该通过属于arcade.physics的身体重新加载x,y的数据,而不是其他。

tank = game.add.sprite(0, 0, 'tank', 'tank1');
tank.anchor.setTo(0.5, 0.5);
game.physics.enable(tank, Phaser.Physics.ARCADE);

......

turret.x = tank.body.x;
turret.y = tank.body.y;