Hi, I’m working on gravity-based logic game. Please, look at this gif:
Lower and upper rectangles detect collision correctly, but as you can see left-right is the problem. I have no idea how to fix it.
My check() method is called from game loop.
public void check() {
man_CenterX = (int) game.man.getBounds().getCenterX();
man_CenterY = (int) game.man.getBounds().getCenterY();
for (int i = 0; i < game.level1.getX().size(); i++) {
System.out.println(i + " " + intersects);
lvl_CenterX = (int) game.level1.getBounds(i).getCenterX();
lvl_CenterY = (int) game.level1.getBounds(i).getCenterY();
intersects = game.man.getBounds().intersects(game.level1.getBounds(i));
if (intersects) {
if (man_CenterY - lvl_CenterY > 0) {
game.man.setY(3);
System.out.println("HEJ1");
// break;
} else if (man_CenterY - lvl_CenterY < 0) {
game.man.setY(-3);
System.out.println("HEJ2");
//break;
} else if (man_CenterX - lvl_CenterX > 0) {
game.man.setX(-3);
System.out.println("HEJ3");
// break;
} else if (man_CenterX - lvl_CenterX < 0) {
game.man.setX(3);
System.out.println("HEJ4");
// break;
}
}
}
}