使用Libgdx,我试图找到一种方法来检查鼠标是否悬停在给定的TextField对象上。
libgdx中的按钮可以使用#isOver()方法检查鼠标是否悬停在它上面。不幸的是,TextFields没有这个。
但是,您可以添加一个新的inputListener,如果鼠标悬停在TextField上,它可以调用事件等,但不允许检查它是否正在悬停。
我如何为TextFields实现#isOver()方法?谢谢。
答案 0 :(得分:1)
您可以使用 Actor 类中的hit()方法检查鼠标是否在 TextField (扩展 Actor )范围内
要获得鼠标位置,您应该使用 Gdx.input 中的getX()和getY()方法,然后将它们转换为 TextField 的舞台使用screenToStageCoordinates()坐标:
TextField textField;
...
//in render() method
Vector2 mouseScreenPosition = new Vector2(Gdx.input.getX(), Gdx.input.getY());
Vector2 mouseLocalPosition = textField.screenToLocalCoordinates(mouseScreenPosition);
if(textField.hit(mouseLocalPosition.x, mouseLocalPosition.y, false) != null) {
//the mouse is over the TextField
}