Sto facendo un gioco di corse usando Libgdx. Voglio toccare la metà destra dello schermo per accelerare, allo stesso tempo, senza rimuovere il punto di tocco precedente, toccare di nuovo un altro sul lato sinistro dello schermo per sparare un colpo. Non riesco a rilevare i punti di tocco successivi.Come tenere traccia di più eventi tattili in Libgdx?
Ho cercato e ottenuto il metodo Gdx.input.isTouched(int index)
, ma non posso determinare come usarlo. Il mio codice touch screen è:
if(Gdx.input.isTouched(0) && world.heroCar.state != HeroCar.HERO_STATE_HIT){
guiCam.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
if (OverlapTester.pointInRectangle(rightScreenBounds, touchPoint.x, touchPoint.y)) {
world.heroCar.state = HeroCar.HERO_STATE_FASTRUN;
world.heroCar.velocity.y = HeroCar.HERO_STATE_FASTRUN_VELOCITY;
}
} else {
world.heroCar.velocity.y = HeroCar.HERO_RUN_VELOCITY;
}
if (Gdx.input.isTouched(1)) {
guiCam.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
if (OverlapTester.pointInRectangle(leftScreenBounds, touchPoint.x, touchPoint.y)) {
world.shot();
}
}
Ciao, grazie per la risposta. Quando ho usato il tuo codice, spara lo scatto o tocco lo schermo o no, ma voglio sparare solo quando tocco schermo. –
Ah, forse il codice dovrebbe controllare 'Gdx.input.isTouched (i)' prima di invocare 'getX (i)'? (Probabilmente i punti di contatto non utilizzati hanno una X di zero ...). Aggiornerò il codice –
Ehi funziona, grazie. –