public void drawHero(Graphics2D g2)
	{
		counter = (counter + 1) % 20;
		if (counter == 19)
			walking = (walking + 1) % 3;
		if (counter == 19 || counter == 9)
			running = (running + 1) % 4;
		if (world.isGravitySuit())
		{
			Box box = (Box) body.getShape();
			Vector2f[] pts = box.getPoints(body.getPosition(), body.getRotation());

			Vector2f p1 = pts[0];

			if (cube != null)
			{
				AffineTransform tr = new AffineTransform();
				tr.translate(p1.x, p1.y);
				tr.scale(.1625, .1625);
				tr.rotate(body.getRotation(), 0, 0);
				g2.drawImage(cube, tr, null);
			}
		}
		else
		{
			Box box = (Box) body.getShape();
			Vector2f[] pts = box.getPoints(body.getPosition(), body.getRotation());
			Vector2f p1 = pts[0];
			float v = body.getVelocity().getX();
			if (stickman != null)
			{
				if ((v > -1 && v < 1) || paused)
				{
					if (stickman != null)
					{
						Image subImg = ((BufferedImage) stickman).getSubimage(0, 0, 50, 80);
						AffineTransform tr = new AffineTransform();
						tr.translate(p1.x - 10, p1.y + 1);
						tr.rotate(body.getRotation(), 0, 0);
						g2.drawImage(subImg, tr, null);
					}
				}
				if ((v > 1 && v < 20) && !paused)
				{
					if (stickman != null)
					{
						BufferedImage subImg = ((BufferedImage) stickman).getSubimage(50 + 50 * walking, 0, 50, 80);
						AffineTransform tr = new AffineTransform();
						tr.translate(p1.x - 10, p1.y + 1);
						tr.rotate(body.getRotation(), 0, 0);
						g2.drawImage(subImg, tr, null);
					}
				}
				if (v > 20 && !paused)
				{
					if (stickman != null)
					{
						BufferedImage subImg = ((BufferedImage) stickman).getSubimage(50 * running, 80, 50, 80);
						AffineTransform tr = new AffineTransform();
						tr.translate(p1.x - 10, p1.y + 1);
						tr.rotate(body.getRotation(), 0, 0);
						g2.drawImage(subImg, tr, null);
					}
				}
				if ((v < -1 && v > -20) && !paused)
				{
					BufferedImage subImg = ((BufferedImage) stickman).getSubimage(50 + 50 * walking, 160, 50, 80);
					AffineTransform tr = new AffineTransform();
					tr.translate(p1.x - 10, p1.y + 1);
					tr.rotate(body.getRotation(), 0, 0);
					g2.drawImage(subImg, tr, null);
				}
				if (v < -20 && !paused)
				{
					BufferedImage subImg = ((BufferedImage) stickman).getSubimage(50 * running, 240, 50, 80);
					AffineTransform tr = new AffineTransform();
					tr.translate(p1.x - 10, p1.y + 1);
					tr.rotate(body.getRotation(), 0, 0);
					g2.drawImage(subImg, tr, null);
				}
			}
		}
	}