Случайное направление без визуально вращающейся формы opengl-es android
Я хочу иметь возможность назначать фигуру в произвольном направлении, чтобы двигаться с обычной скоростью.
Я попытался назначить случайное число значениям x и y перевода, но это иногда приводило к тому, что фигура иногда перемещалась слишком быстро или просто падала с экрана.
Есть ли способ выбрать случайное направление для фигуры, чтобы двигаться без вращения формы (по крайней мере, насколько пользователь может сказать)?
Также существует ли способ повторного генерирования случайного числа при вызове события (т. Е. Щелчка кнопки), который позволил бы изменить направление?
РЕДАКТИРОВАТЬ: Только что проверил. Использование функции вращения со случайным углом приведет к смещению квадрата в случайном направлении, но все же есть ли способ сделать это без изменения ориентации фигуры?
1 ответ
Итак, вы хотите, чтобы фигура двигалась в положительном или отрицательном направлениях x, y или z?
Если вы хотите, чтобы это было случайно, используйте класс Random. Из этого вы можете использовать Random.nextInt(1), который будет либо 0, либо 1, если результат равен 0, тогда установите значение -1.
+1 или -1 теперь используется для вашего направления.
Теперь вы знаете, в каком направлении движется объект, вы можете просто умножить это на скорость вашего объекта.
Вот примерный код
Случайный ранд = новый Случайный (); int direction = rand.nextInt (1);
if (direction == 0) direction = -1;
Форма theShape.position.x += направление * theShape.speed
Это может не соответствовать настройке вашего интерфейса (например, Shape.position или Shape.speed), но идея та же
Прочитав это снова, я думаю, что вы пытаетесь повернуть свою фигуру, вращение - это не просто добавление к значениям x и y. Используете ли вы матрицы в вашем приложении? Если нет, используйте триг, чтобы выяснить, какими будут значения x и y после поворота на x градусов.