libGDX InputProcessor: How to create one new object per android touch?-Collection of common programming errors
How do I fix it?
/*experiment*/
public Vector3 tps[] = new Vector3[2];
/*experiment*/
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
/*experiment*/
if(pointer < 2){
if(pointer == 0) {
Vector3 touchPosition1 = new Vector3();
tps[pointer] = touchPosition1;
tps[pointer].set(screenX, screenY, 0);
gameScreen.getWorldRenderer().getCamera().unproject(tps[pointer]);
touchPoint1 = new TouchPoint(52, 52, new Vector2(tps[pointer].x - 26, tps[pointer].y - 26));
gameScreen.getWorld().getTouchPoints().add(touchPoint1);
Gdx.app.log("TOUCH DOWN", "pointer: " + pointer + " x: " + tps[pointer].x + " y: " + tps[pointer].y);
}
if(pointer == 1) {
Vector3 touchPosition2 = new Vector3();
tps[pointer] = touchPosition2;
tps[pointer].set(screenX, screenY, 0);
gameScreen.getWorldRenderer().getCamera().unproject(tps[pointer]);
touchPoint2 = new TouchPoint(52, 52, new Vector2(tps[pointer].x - 26, tps[pointer].y - 26));
gameScreen.getWorld().getTouchPoints().add(touchPoint2);
Gdx.app.log("TOUCH DOWN", "pointer: " + pointer + " x: " + tps[pointer].x + " y: " + tps[pointer].y);
}
}
return false;
}
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
/*experiment*/
gameScreen.getWorld().getTouchPoints().removeIndex(pointer);
//note: dispose of unused vector3 objects
//note: dispose of all other unused objects
/*experiment*/
return false;
}
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
/*experiment*/
tps[pointer].set(screenX, screenY, 0);
gameScreen.getWorldRenderer().getCamera().unproject(tps[pointer]);
for(TouchPoint tp: gameScreen.getWorld().getTouchPoints()) {
tp.moveRectangleToPosition(new Vector2(tps[pointer].x - 26, tps[pointer].y - 26));
tp.updateRectangleBoundaries();
}
Gdx.app.log("TOUCH DRAGGING", "pointer: " + pointer + " x: " + tps[pointer].x + " y: " + tps[pointer].y);
/*experiment*/
}