2016-11-05 3 views
0

Я хочу, чтобы сделать шар двигаться в определенном направлении, как я даю номер от 0 - 360. В настоящее время моя конвенция:Сделать мяч шаг, чтобы указать направление

0 перемещается вправо, 90 вниз, 180 влево и 270 вверх ,

Проблема в том, что если я наложу что-то вроде 10, 11, 12 и т. Д., Он вообще не сдвинется. Некоторые числа заставляют его перемещаться по 45 углам.

Мой текущий код:

float x = 0, y = 0; 
float speed = 1f; 

int angle = 90; 

float moveX += speed * Math.cos(Math.toRadians(angle)); 
float moveY += speed * Math.sin(Math.toRadians(angle)); 

x += moveX; 
y += moveY; 

moveX = 0; 
moveY = 0; 

Если я снимаю toRadians, мяч идет в другом направлении, но по-прежнему не работает.

Моя математика и английский ужасны, поэтому попробуйте объяснить это как можно проще. И я не знаю различий между радианами и градусами.

+1

Ах подсказка: в жизни нет объездов. Если вы хотите сделать математику ... тогда знание математики имеет важное значение. Возможно, начните здесь: http://www.purplemath.com/modules/radians.htm ... это хорошая вещь в наши дни: просто введите условия, которые вам нужно узнать в своей поисковой системе, и обычно вы найдете тонну материала для изучения ... бесплатно. Поэтому, пожалуйста, не ожидайте, что мы снова напишем ** о том, что основы ... просто для вас. (где я не говорю, что ваш вопрос плохой, я просто указываю, что вы не нуждаетесь в нас для базового исследования). – GhostCat

+0

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

+0

Попробовали ли вы искать в сети материал на своем языке? – GhostCat

ответ

0

я не знаю различия между радианах и градусах и т.д.

Это не совсем место для этого, но вот простое объяснение. Радианы и градусы - это 2 единицы измерения (например, километры и мили). Круг имеет 360 градусов или 2π радиан. Это означает, что

1 degree = π/180 (0.0174533) radians 
1 radian = 180/π (57.2958) degrees 

В 4 кардинальных направления по окружности, используя radiands бы быть 0 или 2л, π/2, π, 3π/2, соответствующий 0 или 360, 90, 180, 270 градусов.

Я хочу, чтобы сделать шар двигаться в определенном направлении, как я даю число от 0 - 360

Теперь ваш код. У вас есть синтаксическая ошибка в строке

float moveX += speed * Math.cos(Math.toRadians(angle)); 

Вы просто объявлены moveX, так что вы не добавить к нему с +=, вы просто присвоить ему с =. То же самое с moveY. Теперь, если вы печатаете x и y после

x += moveX; 
y += moveY; 

вы получите правильные результаты. Я не знаю, почему после этого вы устанавливаете их на 0 - вы потеряете положение мяча.

+0

О, извините, что «плавать» произошла авария. У меня нет этого в моем реальном коде.И я устанавливаю moveX и Y в 0 после добавления их к моим шарам x и y. – Maineri

+0

@Maineri Затем в следующий раз, чтобы избежать этой ситуации, отправьте сообщение [mcve]. Так что решить эту проблему? – user1803551

+0

Не правда. Я думаю, что я слишком простой человек, чтобы понять это. – Maineri

Смежные вопросы