@Override
	public void draw(Graphics g, Display d, int bottomPixelX, int bottomPixelY,
			boolean drawHealth){

		double percentMoved = count * 0.25;

		// Tile coordinates of The Dude (x,y)
		double x, y;
		if(attacking == null) {
			x = this.oldX + (this.x - this.oldX) * percentMoved;
			y = this.oldY + (this.y - this.oldY) * percentMoved;
		} else {
			double dist = (count % 2 == 1) ? 0.2 : 0.1;
			x = this.x + (facing == LEFT ? -1 : facing == RIGHT ? 1 : 0) * dist;
			y = this.y + (facing == UP ? -1 : facing == DOWN ? 1 : 0) * dist;
		}

		// Pixel coordinates (on screen) of the Dude (i,j)
		Point pt = d.tileToDisplayCoordinates(x, y);

		int height = world.getTile(this.x, this.y).getHeight();
		int oldHeight = world.getTile(oldX, oldY).getHeight();

		pt.y -= TILE_HEIGHT * (oldHeight + (height - oldHeight) * percentMoved);
		//pt.y -= TILE_HEIGHT / 2;

		Image i = img[(facing + d.getRotation()) % 4];

		// Draw image at (i,j)

		int posX = pt.x - i.getWidth(null) / 2;
		int posY = pt.y - i.getHeight(null);

		g.drawImage(i, posX, posY, null);

		if (drawHealth) {
			int tall = 10;
			int hHeight = 4;
			int hWidth = 16;
			g.setColor(Color.red);
			g.fillRect(posX, posY - tall, hWidth, hHeight);
			g.setColor(Color.green);
			g.fillRect(posX, posY - tall, (int)(hWidth * currentHealth / (float)maxHealth), hHeight);
		}

	}