Можно создать дубликат:
Java 2D Collision?Java 2D Столкновение
Эй, ребята, у меня есть еще один пост по поводу этого, который только что ушел мертв, так что я думал, что я хотел бы попробовать получить некоторые свежие ответы относительно этого ,
Я пытаюсь заставить мое обнаружение столкновения работать. Мое обнаружение столкновений отлично работает, когда я прихожу к моим блокам карт и прекрасно, когда я только держусь или опускаю и ударяю блок сверху или снизу. Но когда я держусь вверх или вниз, а также направо или налево и ударяю блок сверху или снизу, он будет смещаться в смешных направлениях.
Небольшое видео со мной демонстрирует (извините, если не ясно): http://www.youtube.com/watch?v=6ILccRtw8ME Надеюсь, это поможет.
Если вы не смотрите видео здесь картина изображения карты я буду использовать:
Вот мой текущий код столкновения:
public void checkCollision() {
Rectangle player_rectangle = new Rectangle(player.getX(),player.getY(),32,32);
for(Wall wall : walls) {
Rectangle wall_rectangle = new Rectangle(wall.getX(), wall.getY(), 32,32);
if (player_rectangle.intersects(wall_rectangle)) {
Rectangle intersection = (Rectangle) player_rectangle.createIntersection(wall_rectangle);
if (player.xspeed < 0 && player.x >= intersection.x) {
player.x += intersection.getWidth();
} else {
if (player.xspeed > 0 && player.x <= intersection.x) {
player.x -= intersection.getWidth();
} else {
if (player.yspeed < 0 && player.y >= intersection.y) {
player.y += intersection.getHeight();
}else {
if (player.yspeed > 0 && player.y <= intersection.y) {
player.y -= intersection.getHeight();
}
}
}
}
Print(Integer.toString(intersection.width) + ", " + Integer.toString(intersection.height));
}
}
}
Вся помощь будет оцените, спасибо.
не так ли один и тот же вопрос, который вы просили на своем [старшем сообщение] (http://stackoverflow.com/questions/7763244/java-2d-collision)? Если «да», пожалуйста, отредактируйте и/или запустите награду за свой последний вопрос и не отправляйте ее. если нет, пожалуйста, объясните проблему с более подробной информацией. – amit
+1 для смешного видео. блок деформирования ftw. –
@ThomasJungblut Что значит смешно? : L –