java - 如何将 Action 添加到 libgdx 中的纹理打包程序?

标签 java android libgdx

我正在尝试在每个图像(playIcon、pauseIcon)上创建 eventListner,但它无法使用 touchUp 和 touchDown 工作

这是我的代码:

TextureAtlas buttonsPlayPause = new TextureAtlas("uiii/uiii.pack");
skin.addRegions(buttonsPlayPause);
TextButton.TextButtonStyle textButtonStyle = new TextButton.TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("pauseIcon");
textButtonStyle.checked = skin.getDrawable("playIcon");
TextButton button = new TextButton("", textButtonStyle);
button.setY(pauseY);
button.setX(Gdx.graphics.getWidth()/6);
button.setSize(150,150);
stage.addActor(button);

//pause/playAction
button.addListener(new ClickListener() {
        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {resume();
              }
        @Override
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
         pause();
            return true;
        }
    });

现在发生的情况是按钮监听器的行为为“istouched()”而不是“justtouched()”。当我点击按钮时,游戏会暂停,但每当我移开手指时,游戏就不会暂停,游戏就会运行。

最佳答案

如果我理解正确的话,您希望此按钮在播放和暂停之间切换,根据当前状态调用 pause()resume()

Button 类已经有一个内置的内部 InputListener,因此您只需要一个 ChangeListener 即可对按钮按下使用react:

//pause/playAction
button.addListener(new ChangeListener() {
    @Override
    public void changed (ChangeEvent event, Actor actor) {
        if (button.isChecked())
            resume();
        else
            play();
    }
});

确保在第一次声明它时将其标记为final,以便监听器可以引用它:

//...
final TextButton button = new TextButton("", textButtonStyle);
//...

关于java - 如何将 Action 添加到 libgdx 中的纹理打包程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43081110/

相关文章:

java - 扩展 java.util.Scanner

macos - 使用 const 时,OSX 上的 Opengl es 2.0 GLSL 编译失败

java - 没有最大小数位数的 NumberFormat

java - Selenium webdriver click() 在 jenkins 中失败

java - 在 sqlite 上使用图像的更有效方法?

android - 如何在主页按钮上单击退出应用程序?

android - 服务和 Android 应用程序生命周期

java - libgdx 如何访问 android 设备的电源按钮?

libgdx - spritebatch 是否用单个批处理绘制多个阶段? Libgdx

java - 获取非 Activity 类的 onActivityResult (Android)