private void move(Facing face){
		if (s.canMove()){
			switch (face){
			case EAST:
				targetTileX += 1;
				targetX = 16;
				break;
			case NORTH:
				targetTileY -= 1;
				targetY = -16;
				break;
			case SOUTH:
				targetTileY += 1;
				targetY = 16;
				break;
			case WEST:
				targetTileX -= 1;
				targetX = -16;
				break;
			default:
				break;
			}
			if (isHooked){
				isMoving = true;
				movingValueX = 0;
				movingValueY = 0;
			}
			if (s.checkRange(targetTileX, targetTileY, face) && isIdle){
				isMoving = true;
				movingValueX = 0;
				movingValueY = 0;
			}
			else if (!s.checkRange(targetTileX, targetTileY, face) && isIdle && !hasBounced){
				tilesToMove = 15;
				switch (face){
				case EAST:
					hasBounced = true;
					setFacing(Facing.WEST);
					move(Facing.WEST);
					break;
				case NORTH:
					hasBounced = true;
					setFacing(Facing.SOUTH);
					move(Facing.SOUTH);
					break;
				case SOUTH:
					hasBounced = true;
					setFacing(Facing.NORTH);
					move(Facing.NORTH);
					break;
				case WEST:
					hasBounced = true;
					setFacing(Facing.EAST);
					move(Facing.EAST);
					break;
				default:
					break;
				}
			}
			hasBounced = false;
		}
		else if (!s.canMove() && isHooked && !intersects(hookedPlayer)){
			if (face == Facing.NORTH){
				setFacing(Facing.EAST);
				move(Facing.EAST);
			}
			else if (face == Facing.EAST){
				setFacing(Facing.SOUTH);
				move(Facing.SOUTH);
			}
			else if (face == Facing.WEST){
				setFacing(Facing.NORTH);
				move(Facing.NORTH);
			}
			else{
				setFacing(Facing.WEST);
				move(Facing.WEST);
			}
		}
		else{
			tilesToMove = 0;
		}
	}