Мне нужно найти скорость объекта в игре. Игра выполнена в HTML5 с jquery и jquery.box2d. Для этого можно использовать следующие методы:Вычислить скорость из вектора скорости с помощью box2d GetLinearVelocity();
GetLinearVelocity().x;
GetLinearVelocity().y;
Я затем пытается вычислить скорость от этого куска кода, но получить некоторые значения, которые не имеют смысла, когда я console.log его. Это мой код:
var heroVelX = game.currentHero.GetLinearVelocity().x;
var heroVelY = game.currentHero.GetLinearVelocity().y;
var speed = Math.sqrt(heroVelX^2 + heroVelY^2);
console.log(speed);
Некоторые из значений console.log являются числами, но большинство из них являются NaN (Not-A-Number), который меня смущает? Может ли кто-нибудь помочь мне решить эту проблему?
Цель, которую я хочу достичь, - увидеть, когда скорость (объекта .currenHero) опускается ниже определенного значения, поэтому я могу выпустить новое состояние в игре.
правильный ответ, но 'Math.pow (foo, 2)' чрезмерно по сравнению с тем, что просто писал 'foo * foo'. – Alnitak
@ Алнитак, какой бы ни был ваш стиль, это самый прямой путь в JS. – ydaniv
Я вижу вашу точку с 'foo * foo' более простой, просто пытаясь получить положительное значение. –