LibGDX如何知道是否有人点击纹理

时间:2014-10-18 14:28:16

标签: image button click libgdx textures

我正在使用它,如果有人触及位置在哪里是纹理,做点什么。但它是坏的,我想制作一个可调整大小的游戏,因为没有人都有高清和以上的屏幕(和机器人,更糟糕的..)。所以,我已经应用了投影矩阵,所以如果我调整大小它看起来不错,但如果我调整屏幕大小,按钮比它更大或更小,所以现在的位置不正确。所以我的问题是,是否可以将OnClickListener设置为纹理?所以如果我调整屏幕大小,它会工作。

或许,我想,也可能有一个按钮。但我不知道如何设置按钮的纹理。

2 个答案:

答案 0 :(得分:0)

所以,在create func中我创建了一个图像:

Image backImage = new Image(backTexture); //backTexture is my button texture
backImage.setX(0);
backImage.setY(0);
backImage.setWidth(800);
backImage.setHeight(480);

然后在渲染功能中,我有:

backImage.addListener(new ClickListener() {
    public boolean touchDown(InputEvent event, float x, float y, int pointer, int button)
    {
        //do something
        return true;
    }
});

并且,我创建了一个新类,我在其中实现InputAdapter,在创建函数中我也调用

Touch t; // my touch class 
Gdx.input.setInputProcessor(t);

所以,它应该从Touch.class覆盖TouchDown函数,但它不起作用

答案 1 :(得分:0)

尝试使用此侦听器:

image.addListener(new ChangeListener() {
        @Override
        public void changed (ChangeEvent event, Actor actor) {
            //smth
        }
    });