00
:
00
:
00
:
00
Corso SEO AI - Usa SEOEMAIL al checkout per il 30% di sconto

Gestione Input

Polling (Interrogazione)

Il modo più semplice per gestire l’input è chiedere a Gdx “questo tasto è premuto ora?”. Si fa dentro il metodo render().

```java if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) { player.x -= 200 * Gdx.graphics.getDeltaTime(); }

if (Gdx.input.isTouched()) { // Mouse click o touch Vector3 touchPos = new Vector3(); touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0); camera.unproject(touchPos); // Converti da coordinate schermo a mondo di gioco player.x = touchPos.x; } ```

Event Driven (InputProcessor)

Per eventi “discreti” come “tasto premuto una volta” (non tenuto premuto) o “scrolling del mouse”, usa InputProcessor.

```java public class MyGame extends ApplicationAdapter implements InputProcessor {

@Override
public void create() {
    Gdx.input.setInputProcessor(this); // Diciamo a Gdx di mandare gli eventi qui
}

@Override
public boolean keyDown(int keycode) {
    if (keycode == Input.Keys.SPACE) {
        player.jump();
    }
    return true; // L'evento è stato gestito
}

@Override
public boolean keyUp(int keycode) {
    return false;
}

@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
    return false;
}

// ... implementa gli altri metodi ...

} ```

InputMultiplexer

Se hai bisogno sia di una UI (che consuma i click) sia del gioco (che controlla il player), usa un Multiplexer.

```java InputMultiplexer multiplexer = new InputMultiplexer(); multiplexer.addProcessor(stage); // Prima la UI (Stage di Scene2D) multiplexer.addProcessor(this); // Poi il gioco Gdx.input.setInputProcessor(multiplexer); ```