【问题标题】:libgdx clickable image not workinglibgdx 可点击图像不起作用
【发布时间】:2014-05-09 22:20:21
【问题描述】:

我在 libgdx 中有一个菜单屏幕,我有一个文本按钮,可以开始这样的新游戏。

textButton.addListener(new ChangeListener() {
    public void changed (ChangeEvent event, Actor actor) {
        g.setScreen( new level1(g));
    }
});

它看起来很垃圾,所以我把它换成了一张图片。

playbuttontexture = new Texture(Gdx.files.internal("data/playbutton.png"));
playbuttontexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);

TextureRegion playbuttonregion = new TextureRegion(playbuttontexture, 0, 0, 512, 256);//powers of 2

playbutton = new Image(playbuttonregion);
playbutton.setSize(512,256);
playbutton.setBounds(width/2-playbutton.getWidth()/2, height/2-playbutton.getHeight()/2, 512, 256);
//playbutton.setOrigin(playbutton.getWidth()/2, playbutton.getHeight()/2);
playbutton.setPosition(width/2-playbutton.getWidth()/2, height/2-playbutton.getHeight()/2);

playbutton.addListener(new ChangeListener() {
    public void changed (ChangeEvent event, Actor actor) {
        g.setScreen( new level1(g));
    }
});

现在当我点击它时什么都没有发生?我做错了什么?

【问题讨论】:

  • 将其更改为 ClickListener 并改用 clicked(...) 方法。图片不会触发 changed() 事件。
  • @noone 你应该把你的答案放在答案部分。即使它们很短。
  • @P.T.是的,对不起。有时我只是没有时间写超过半句话。

标签: java libgdx


【解决方案1】:

这里的问题是Image 不再触发changed(...) 事件。此事件仅由您之前使用过的TextButton 触发,当状态从单击变为未单击时,反之亦然。它也可以在其他情况下触发,因为它是一种“通用”事件,正如 JavaDoc 所述,但因参与者而异。

将其更改为 ClickListener 并改用 clicked(...) 方法。 scene2d.ui 包中的所有参与者都应触发此事件。

【讨论】:

    【解决方案2】:

    对我来说,这就是我实现代码时的样子(我遇到了类似的问题。没有人能很好地将我指向正确的地方。)

    playbutton.addListener( new ClickListener(){
        @Override
        public void clicked (InputEvent event, float x, float y) {
        //your code to do stuff when the button is clicked  
    
        }
    
    });
    

    【讨论】:

      猜你喜欢
      • 2016-02-12
      • 2019-12-27
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多