Как у меня есть столкновение и реакция между двумя классами? - PullRequest
2 голосов
/ 31 мая 2011

У меня есть массив типа Dot, который содержит точку и радиус, и Player, представляющий собой прямоугольник с точкой и размером.

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

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

for (int i = 0; i < NUM_DOTS; i++) {
   if (player.intersects(dotPos[i])) {
      gameOver = true;
   }
}

Ответы [ 4 ]

1 голос
/ 31 мая 2011

Где бы я написал код и что мне нужно передать в качестве параметров?

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

Кроме того, у вас может быть запущен поток, который перемещает точки (точки перемещаются?). Это еще одно место, где вы можете разместить код для проверки на наличие коллизий.

1 голос
/ 31 мая 2011

Если вам разрешено использовать классы, реализующие интерфейс java.awt.Shape, то может быть полезен один из определенных методов intersects().

1 голос
/ 31 мая 2011

также звучит как lerp

1 голос
/ 31 мая 2011

Какую передовую технологию вы используете?Если Swing / AWT, они предоставляют прослушиватели событий, которые могут прослушивать изменения.Для веб-приложения действие отправки / AJAX - это событие, которое может искать изменения.

Если вы хотите быть по-настоящему универсальным, вам нужно будет создать новый поток и иметь свой код слушателя в методе run.

...