4

単純なImageButtonをステージに配置しようとすると、クリックが検出されなかったようです。

ImageButton btnStart = new ImageButton(ButtonArt.UP, ButtonArt.DOWN));

// btnStart.setClickListener(new ClickListener() {
//          @Override
//          public void click(Actor a, float arg1, float arg2) {
//             a.visible = false;
//          }
//       });

stage.addActor(btnStart);

ButtonArt.UPとButtonArt.DOWNは、各状態のTextureRegionsです。ボタンをクリックしても状態は変わりません!上記のClickListener(テスト用)も試しましたが、どちらも機能しなかったようです。

私のrenderメソッドでは、stage.act()とstage.render()を呼び出すだけです。また、renderメソッドでSpriteBatchを使用してTextureRegionsを描画しようとしましたが、実際には異なるテクスチャです。

私は何か間違ったことをしていますか?

4

1 に答える 1

8

ステージを入力プロセッサとして設定する必要があります。

Gdx.input.setInputProcessor(stage);

複数の入力プロセッサが必要な場合(たとえば、シーンの外部でクリックを登録する必要がある場合)、次のようにInputMultiplexerを使用する必要があります。

InputMultiplexer plex = new InputMultiplexer();
plex.addProcessor(myOtherProcessor);
plex.addProcessor(stage);
Gdx.input.setInputProcessor(plex);
于 2012-04-30T21:00:06.757 に答える