public void update() {
		// update position
		getNextPosition();
		checkTileMapCollision();
		setPosition(xtemp, ytemp);

		// check flinching
		if (flinching) {
			long elapsed = (System.nanoTime() - flinchTimer) / 100000;
			if (elapsed > 400) {
				flinching = false;
			}
		}
		// if we hit a wall, go the other way!
		if (right && dy == 0) {
			right = false;
			left = true;
			facingRight = false;
		} else if (left && dy == 0) {
			right = true;
			left = false;
			facingRight = true;
		}
		// THIS ALWAYS UPDATES ANIMATIONS!!!
		animation.update();
	}