@Override
	public void update(final int delta) {
		super.update(delta);
		if (controls.isRIGHT()) {
			direction.add(SPEED * delta, 0);
			left = false;
		}
		if (controls.isLEFT()) {
			direction.add(-SPEED * delta, 0);
			left = true;
		}
		// if (controls.isUP()) {
		// direction.add(0, -SPEED * delta);
		// }
		// if (controls.isDOWN()) {
		// direction.add(0, SPEED * delta);
		// }
		if (controls.isCTRL() && isShotEnable && lastShot > SHOOT_COOLDOWN) {
			World.getInstance().addEntity(new ShootEntity(pos.copy().add(0, -5), left));
			lastShot = 0;
		}

		if (controls.wasSpace() && isJumpEnable && lastJump > JUMP_COOLDOWN && gravity.length() < 1.9) {
			SoundEffect.JUMP.play();
			direction.add(0, -SPEED * 50 * 13);
			lastJump = 0;
		}

		lastJump += delta;
		lastShot += delta;

		move(delta);
	}