使用 Libgdx,我试图找到一种方法来检查鼠标是否悬停在给定的 TextField 对象上。
libgdx 中的按钮可以使用#isOver() 方法检查鼠标是否悬停在它上面。不幸的是,TextFields 没有这个。
但是,您可以添加一个新的 inputListener,它可以在 TextField 鼠标悬停等情况下调用事件,但不允许检查它是否悬停在上面。
我将如何为 TextFields 实现#isOver() 方法?谢谢。
最佳答案
您可以使用 hit() Actor 类中的方法,用于检查鼠标是否在 TextField(扩展 Actor)范围内。
要获取鼠标位置,您应该使用 getX()和 getY() Gdx.input 中的方法,然后使用 screenToStageCoordinates() 将它们转换为 TextField 的舞台坐标:
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
}
关于java - Libgdx 我将如何检查鼠标是否悬停在 TextField 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35471809/