Super_Hippo wrote...
Still, if you move and check intersection for each block alone, it can move upon another block of this tetromino.
private boolean moveTetromino(int dir)
{
boolean result = true;
for (Block block : tetromino) block.fall(dir);
for (Block block : tetromino) result = result && block.fall(0);
return result;
}return getObjectsAtOffset(0, 0, Block.class).size() == 1;

return getObjectsAtOffset(0, 0, Block.class).size() == 1 || getY() == getWorld().getHeight()-1;
return getObjectsAtOffset(0, 0, Block.class).size() == 1 || getY() == getWorld().getHeight()-1;

getY() != getWorld().getHeight()-1
super(15, 20, 40, false);
getY() != getWorld().getHeight()-1
super(15, 20, 40, false);
public void act()
{
move();
}
public void move()
{
if (Greenfoot.isKeyDown("left"))
{
setLocation(getX() - 1, getY());
}
if (Greenfoot.isKeyDown("right"))
{
setLocation(getX() + 1, getY());
}
}