private void initKeys() {
		inputManager.addMapping("down", new KeyTrigger(KeyInput.KEY_W));
		inputManager.addMapping("up", new KeyTrigger(KeyInput.KEY_S));
		inputManager.addMapping("left", new KeyTrigger(KeyInput.KEY_A));
		inputManager.addMapping("right", new KeyTrigger(KeyInput.KEY_D));

		inputManager.addMapping("one", new KeyTrigger(KeyInput.KEY_1));
		inputManager.addMapping("two", new KeyTrigger(KeyInput.KEY_2));
		inputManager.addMapping("three", new KeyTrigger(KeyInput.KEY_3));
		inputManager.addMapping("four", new KeyTrigger(KeyInput.KEY_4));
		inputManager.addMapping("shootB", new MouseButtonTrigger(
				MouseInput.BUTTON_LEFT));

		inputManager.addListener(analogListener, "left", "right", "down", "up",
				"one", "two", "three", "four", "pulse");

		ActionListener acl = new ActionListener() {

			public void onAction(String name, boolean keyPressed, float tpf) {
				if (name.equals("shootB") && keyPressed) {
					Vector2f click2d = inputManager.getCursorPosition();
					Vector3f click3d = cam.getWorldCoordinates(
							new Vector2f(click2d.x, click2d.y), 0f).clone();
					Vector3f dir = cam
							.getWorldCoordinates(
									new Vector2f(click2d.x, click2d.y), 1f)
							.subtractLocal(click3d).normalizeLocal();
					sharedstate.BeamD beamdata = new sharedstate.BeamD(
							playerData, dir);
					state.getMyObjects().add(beamdata);
					state.getObjects().add(beamdata);
					audio_beam.playInstance();
				}
			}
		};

		inputManager.addListener(acl, "shootB");
	}