移相器3中的运动角度问题

时间:2018-08-09 21:34:45

标签: phaser-framework

查看this实验示例。 它实际上仅以4个角度(45,135,-45,-135)移动。该如何解决?

---更新---

是的,它开始向各个角度移动,但随后开始拖动到我说的这四个角度之一。如果您启用了调试模式,并且只是以一个角度移动,除了我说过的那个,您会注意到它。

enter image description here

1 个答案:

答案 0 :(得分:1)

啊哈!我知道了。这真的是Phaser的不可思议的部分。

当相位器将最大速度设置为600时,
它没有设置矢量最大速度600。

但是,相反,它会将 velocity.x和velocity.y最大值设置为600

意思是,因为船的加速度超过了最大值,

它将达到速度x = 600和速度y = 600,
使其移动到45,-45等位置。

我记得相位2中的这个,我用自己的最大函数解决了。
这是我的(某种)伪代码。

function maximumVelocity(sprite, maxV){
  var v = Math.sqrt( Math.pow(sprite.body.velocity.x,2) + Math.pow(sprite.body.velocity.y,2) )
  if(v > maxV){
    sprite.body.velocity.x = maxV * Math.cos(sprite.angle*Math.PI/180)
    sprite.body.velocity.y = maxV * Math.sin(sprite.angle*Math.PI/180)
  }
}

编辑: 我不小心将x的平方加了两次。我应该添加x ^ 2和y ^ 2。 而且,我只是编写了完整的工作代码,而不是伪代码。