当我将鼠标悬停在其上时,我试图将字体的颜色更改为白色,这样用户可以清楚地点击该特定按钮继续操作。 然而,我很困惑为什么它不是白色而是保持它已经是的颜色。 我正在使用Hiero来获取我的字体。
if (hovertext1.contains(tp.x, tp.y)) {
font5.setColor(Color.WHITE);
if (Gdx.input.isTouched()) {
game.setScreen(new ChooseLevel(game));
dispose();
}
} else {
font5.setColor(Color.BLACK);
}
我很困惑,为什么当我将鼠标悬停时它不会改变颜色?
Hovertext是使用Rectangle创建的变量。
tp - 来自:
Vector3 tp = new Vector3();
@Override
public boolean mouseMoved(int screenX, int screenY) {
// TODO Auto-generated method stub
camera.unproject(tp.set(screenX, screenY, 0));
return false;
我在这里确定了hovertext1;
hovertext1 = new Rectangle(330,255,125,50);
如果我要让它返回true我会在哪里这样做?
答案 0 :(得分:0)
这不是您问题的直接答案,但我认为使用Scene2D
库可以方便您完成任务。只是为了表明,我的意思 - 这是一个非常简单的例子,说明如何做你要求的事情:
public class MyGdxGame extends ApplicationAdapter {
Stage stage;
public void create() {
stage = new Stage();
stage = new Stage();
final Label label = new Label("TEST", new Label.LabelStyle(new BitmapFont(), Color.WHITE));
label.setColor(Color.BLACK);
label.setPosition(Gdx.graphics.getWidth() / 2, Gdx.graphics.getWidth() / 2);
label.addListener(
new InputListener() {
@Override
public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
label.setColor(Color.WHITE);
}
@Override
public void exit(InputEvent event, float x, float y, int pointer, Actor toActor) {
label.setColor(Color.BLACK);
}
}
);
stage.addActor(label);
Gdx.input.setInputProcessor(stage);
}
public void render() {
Gdx.gl.glClearColor(0.5f, 0.5f, 0.5f, 1f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
float delta = Gdx.graphics.getDeltaTime();
stage.act(delta);
stage.draw();
}
}
详细了解Scene2D
:https://github.com/libgdx/libgdx/wiki/Scene2d