Как проверить, перекрывает ли один рисунок другой? - PullRequest
3 голосов
/ 27 сентября 2011

Я посмотрел в Google и до сих пор не могу ничего найти. У меня была идея для простой игры типа Snake или подобной игре «Коллекция монет» с использованием 2D-графики, но если монета является графикой, а движущийся персонаж - графикой, как я могу проверить, проходит ли персонаж монету? Я в тупике. Есть идеи?

Ответы [ 3 ]

1 голос
/ 27 сентября 2011

В сырой реализации все ваши спрайты поддерживаются объектом Rectangle2D и используйте метод intersects для проверки на столкновение.Будьте очень грубы!

0 голосов
/ 27 сентября 2011

Я не могу придумать, как это сделать с помощью графического пакета; более того, я думаю, это то, что вы должны делать в своей модели, а не в графике.

Проблема, которую вы смотрите, обычно называется «обнаружение столкновений». Есть много разных подходов к этому; поискать в Интернете некоторые руководства было бы полезно. Тем не менее, я думаю, что один простой подход - думать о каждом объекте (монета, змея и т. Д.) Как о прямоугольнике, делая математику действительно простой. Круги (для монеты) тоже не должны быть слишком плохими.

0 голосов
/ 27 сентября 2011

Да, классическая проблема комплектации и выбора.Это немного долго объяснять здесь - пожалуйста, прочитайте http://download.oracle.com/javase/tutorial/2d/advanced/user.html.А также, самое простое - это использовать contains(MousePoint) .

См. Сбор в Java 2d .

...