private void MoveToGrid() { prevRGrid.releaseGrid(); gridToAcquire.acquireGrid(); if (gridToAcquire.direction == Direction.none) { timer.schedule( new TimerTask() { public void run() { isMoving.release(); } }, 300); try { isMoving.acquire(); } catch (Exception e) { } } prevRGrid = currRGrid; currRGrid = gridToAcquire; personGui.moveOn(); try { isMoving.acquire(); } catch (Exception e) { } }