движущиеся предметы в JPanel - PullRequest
0 голосов
/ 14 апреля 2009

Я работаю над игрой в понг и работаю над механизмом перемещения мяча. Если я добавлю 1 к x, шар переместится на 1 пиксель вправо, если я добавлю 1 к y, шар переместится на 1 пиксель вниз. Что, если я хочу переместить шар под определенным углом, как я могу вычислить координаты.

Ответы [ 4 ]

2 голосов
/ 14 апреля 2009

Попытка работать с углами станет немного сложнее, чем нужно. Для этого вида анимации вы обычно хотите использовать плавающие объекты для хранения координат x и y ваших объектов и перемещать их, применяя дельты x и y (плавающие элементы сохранят детализацию положения, которое теряется при округлении при рисовании на экране). Дельты представляют скорость вашего объекта в каждой оси и могут быть отрицательными или положительными.

Для каждой итерации анимации добавьте xdelta к вашей координате x и добавьте ydelta к вашей координате y. Округлите их, чтобы расположить на экране.

Когда вы нажимаете верхнюю или нижнюю границу, вы меняете знак на компоненте ydelta и аналогичным образом для боковых границ.

Вы не хотели бы постоянно сохранять одну и ту же дельту x и y, поэтому, когда объекты попадают на весло, немного измените дельту x или y, чтобы изменить угол.

1 голос
/ 14 апреля 2009

Вы можете найти эти ресурсы полезными.

1 голос
/ 14 апреля 2009

для чего-то вроде Понга вы должны исследовать векторную математику, но если все, что вам нужно, это знать угол, все, что вам действительно нужно, это SOHCAHTOA .

1 голос
/ 14 апреля 2009

вы ищете алгоритмы рисования линий, что-то вроде Брезенхэма или DDA, вы можете найти некоторые разумные реализации здесь курса, вместо того, чтобы рисовать полную линию, вы бы двигали свой шарик вдоль этой линии, но путь поиска набор линий для движения одинаков.

...