Итак, я пытаюсь сделать перемещение объекта на основе двух скоростей, которые он создает, используя atan(). Но каждый тест приводит к тому же движению вверх.Объект не перемещается на основе заданного угла?
Поэтому я решил взять это и заменить его, введенными углами, как ни странно, работает только для четырех углов 90 180 270 0
Я не знаю, почему он идет только для тех, кто только для направлений вот мой код:
public void update() {
updateDir();
move();
}
public void updateDir(){
dir = Math.atan(spdY/spdX);
dir =20; //I know this is here it was used to test if it will actually change
dir = dir * Math.PI/180.0;
System.out.println("dir: " + dir);
}
public void move() {
x += (spd*Math.cos(dir));
y -= (spd * Math.sin(dir));
}
Любая причина, по которой это происходит только в 4-х направлениях?
Колодец дурак (извините за то, что не вставляете это), но я попробую сделать 20 до двойного. Кроме того, ваше право на то, что я забыл об этом, скоро изменит его. – mkjrfan
Убедитесь, что x и y удваиваются. Я подозреваю, что они были int. –
Да, это устранило проблему. Спасибо! – mkjrfan