Попытка переместиться на point.x / .y меньше 1 - PullRequest
0 голосов
/ 14 декабря 2010

Я пытаюсь вернуть точку из метода, который вычисляет угол как вектор.

Затем я добавляю эти точки 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;

1 Ответ

2 голосов
/ 14 декабря 2010

Значения point.x / y являются числами. То, как вы добавляете point.x / y в ваш object.x / y, должно быть хорошо. Я подозреваю, что с кодом что-то не так, хотя без вашего кода я не уверен, что именно. Например, я не вижу, где создается apoint .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...