Inputlistener不处理actor上的输入

时间:2013-07-23 10:53:08

标签: java android libgdx scene

我在MenuScreen.java文件中放入以下表格按钮,以制作“开始游戏”按钮:

// register the button "start game"
        TextButton startGameButton = new TextButton( "Start game", getSkin() );
        startGameButton.setTouchable(Touchable.enabled);
        startGameButton.addListener( new InputListener() {

            public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
                System.out.println("down");
                Gdx.app.log( HowDrunkAreYou.LOG, "touch d" );
                return true;
        }

            public void touchUp(
                InputEvent event,
                float x,
                float y,
                int pointer,
                int button )
            {
                Gdx.app.log( HowDrunkAreYou.LOG, "touch d" );
                super.touchUp( event, x, y, pointer, button );
                game.getSoundManager().play( HowDrunkAreYouSound.CLICK );
                //game.setScreen( new StartGameScreen( game ) );
            }
        } );
        table.add( startGameButton ).size( 300, 60 ).uniform().spaceBottom( 10 );

由于某种原因输入处理程序永远不会触发,java调试器永远不会进入该方法。我错过了什么?我已经在桌面和Android上测试了它,结果相同。

logcat或控制台都没有给我任何关于可能是错误的信息。

谢谢!

1 个答案:

答案 0 :(得分:2)

您需要在代码中使用Gdx.input.setInputProcessor(stage)。此链接将帮助您。 steigert blogspot

现在我可以告诉你的是,你需要创建一个阶段,向其添加表,并将阶段传递给setinputprocessor()。有关更多详细信息,请参阅此链接,您将了解有关舞台和使用表格的更多信息