I wrote the code to stop, but why is ONLY the last condition satisfied?
for(Point p : level.brickCoords) { if(new Rectangle((int) (newX), (int) (newY), SPRITE_SCALE + 14, SPRITE_SCALE + 14).intersects(new Rectangle(px, py, level.SCALE,level.SCALE)) && rotate == rotate.NORTH) { speed = 0; if(rotate == rotate.EAST || rotate == rotate.WEST || rotate == rotate.SOUTH) { speed = 2.1f; } }else if(new Rectangle((int) (newX), (int) (newY),SPRITE_SCALE + 14, SPRITE_SCALE + 14).intersects(new Rectangle(px, py, level.SCALE,level.SCALE)) && rotate == rotate.SOUTH) { speed = 0; if(rotate == rotate.EAST || rotate == rotate.WEST || rotate == rotate.NORTH) { speed = 2.1f; } }else if(new Rectangle((int) (newX), (int) (newY),SPRITE_SCALE + 14, SPRITE_SCALE + 14).intersects(new Rectangle(px, py, level.SCALE,level.SCALE)) && rotate == rotate.EAST) { speed = 0; if(rotate == rotate.EAST || rotate == rotate.NORTH || rotate == rotate.SOUTH) { speed = 2.1f; } }else if(new Rectangle((int) (newX), (int) (newY),SPRITE_SCALE + 14, SPRITE_SCALE + 14).intersects(new Rectangle(px, py, level.SCALE,level.SCALE)) && rotate == rotate.WEST) { speed = 0; } if(rotate == rotate.NORTH || rotate == rotate.EAST || rotate == rotate.SOUTH) { speed = 2.1f; }