Я ценю всю обратную связь. Но причина, по которой я хотел использовать углы, заключается в том, чтобы контролировать направление движения мяча в зависимости от скорости вращения ракетки. В Псуедо это то, что я пытаюсь сделать ...
var tempSpeedX:Number = xspeed;
var tempSpeedY:Number = yspeed;
var tempDirY:Number = yDir * -1;
tempSpeedY = tempSpeedY * tempDirY;
var angle:Number = Math.atan2(tempSpeedY , tempSpeedX );
//angle = angle + ( paddle.cspeed * .4 );
xspeed = Math.cos(angle);
yspeed = Math.sin(angle);
trace(xspeed);
trace(yspeed);
yDir += tempDirY;
isHit = false;
tempSpeedX, tempSpeedY и tempDirY - временные переменные, используемые для хранения скорости x и y моего шара. tempDirY используется для удержания моего направления оси Y. Либо -1, либо 1. Я пытаюсь воссоздать новый ракурс.
Допустим, мяч движется при vx = 3, vy = 3. Я знаю, что при ударе шар будет двигаться в этом направлении. Поэтому я переворачиваю ось Y и получаю угол. Вот что делает следующий код
tempSpeedY = tempSpeedY * tempDirY;
Я беру текущее направление и умножаю его на скорость, чтобы перевернуть его в другом направлении. Далее я получаю угол, используя atan2
var angle:Number = Math.atan2(tempSpeedY , tempSpeedX);
Как только я получу новый угол, На данный момент. Я мог бы изменить направление туда, куда я хочу, чтобы мяч двигался в зависимости от моей скорости. где это закомментировано, я положил код, чтобы изменить направление. Затем я бы вернул его к нормальному углу, используя грех и косинус. затем снова вернемся к xspeed и yspeed. но этот код не работает. не уверен, что не так.
Я знаю, что то, что я делаю, слишком сложно из-за недостатка знаний в физике. Но основной способ вызывает слишком много осложнений, которые я не могу действительно объяснить.
Допустим, по старинке, мяч не движется в направлении, в котором весло пытается его взять. xDir постоянно переворачивается от -1 к положительному значению, в результате чего скорость изменяется с отрицательного на положительное. мое весло движется вперед и назад, так что скорость отрицательная и положительная. и поэтому иногда указания не идут так, как они должны. поэтому я пытаюсь придумать лучший способ управления мячом с помощью весла