Наконец-то я получил обнаружение столкновения, используя перекрестки() между двумя прямоугольниками и, похоже, работает. Однако игрок просто застревает в прямоугольнике и не может двигаться. Поэтому я пытаюсь проверить конфликт перед движением игрока.Обнаружение столкновений в Java до того, как вы переместились
Вот что я пробовал:
if(up == true){
Rectangle futurerect = new Rectangle(px,py-=5,81,150);
if(!futurerect.intersects(wallexample)){
py-=5;
repaint();
}
}
if(down == true){
Rectangle futurerect = new Rectangle(px,py+=5,81,150);
if(!futurerect.intersects(wallexample)){
py+=5;
repaint();
}
}
if(left == true){
Rectangle futurerect = new Rectangle(px-=5,py,81,150);
if(!futurerect.intersects(wallexample)){
px-=5;
repaint();
}
}
if(right == true){
Rectangle futurerect = new Rectangle(px+=5,py,81,150);
if(!futurerect.intersects(wallexample)){
px+=5;
repaint();
}
}
Я просто создать новый прямоугольник, но в котором было бы, если игрок переехал, и проверить, если он сталкивается. Если это так, не двигайтесь.
Проблема в том, что когда игрок переходит в прямоугольник, он просто замедляется. Он по-прежнему движется через стену, но по какой-то причине просто движется медленнее.
В чем причина этой проблемы?
Ах, спасибо, я вижу свою ошибку прямо сейчас. – joey942