Search code examples
libgdx

libgdx touchDown called just once


I'm new to LibGdx, and have problem with input handling.

My player needs to shoot bullets whenever touch is down. But it seems that this method is called just once...

And then user have to click again to shoot another bullet.

I want always to shoot bullets while click is down...

Is there a way to handle this use case?


Solution

  • I've succeeded to work this out, without pooling concept.

    I have custom InputProccesor, int I've used similar logic like P.T. mentioned. I touchDown I start thread that shoots bullets and do some calculation, because I access to some methods from Renderer class I've to use

       Gdx.app.postRunnable(new Runnable() {
            @Override
            public void run() {
            // process the result, e.g. add it to an Array<Result> field of the ApplicationListener.
            shootBullet(screenX, screenY);
            }
        });
    

    To avoid OpenGL context exception.

    In touchUp method I cancel shooting thread.

    Tnx for idea!