Я пытаюсь вернуть точку из метода, который вычисляет угол как вектор.
Затем я добавляю эти точки x & y к объекту моего игрока (из примера кода) 'sx и yЧисла - это числа, а не точка.В других местах я вижу числа, определенные как числа с плавающей точкой, поэтому я не ожидал, что это станет проблемой.
Когда я умножаю distvar и distvar2 на * 2, тогда мой объект перемещается, что лучше всего сказать, потому что значения, ранее .59 ~ & -.8 ~, больше 1 (абсолютное значение).
Есть подсказки?Должен ли я просто использовать переменную Point на моем объекте player?Есть ли что-то еще, что я должен сделать, чтобы преобразовать из point.x / y в Number?Новичок во флэш, благодарю за помощь.
Спасибо!
public function GetAngle(initialp:Point,secondp:Point):Point{
distvar = ((initialp.x - secondp.x) * (initialp.x - secondp.x));
distvar2 = ((initialp.y - secondp.y) * (initialp.y - secondp.y));
//Emergency guard clause against dividing by 0
if (distvar + distvar2 == 0){
distvar = 1;
distvar2 = 1;
}
veldistance = Math.sqrt((distvar+distvar2));
distvar = ((Math.abs(initialp.x-secondp.x))/veldistance);
distvar2 = ((Math.abs(initialp.y-secondp.y))/veldistance);
if (secondp.x < initialp.x){
distvar = -distvar;
}
if (secondp.y < initialp.y){
distvar2 = -distvar2;
}
apoint.x = distvar;
apoint.y = distvar2;
return apoint;