java - Libgdx 我将如何检查鼠标是否悬停在 TextField 上?

标签 java events libgdx

使用 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/

相关文章:

java - 如何将 .class 文件转换为 .java 文件?

java - 无法从 SharedPreferences 获取数据

javascript - Javascript 中触摸屏事件的文档

Python 计划替代方案取消所有事件

java - GWT:从 Java 调用 javascript 函数

java - Json 解析为 HashMap<ArrayList<>> 在 Libgdx 中抛出 StackOverflowError?

java - Java 中的 FuntionalInterface 注解类型

java - 从二维数组或矩阵中删除重复项

android - Android中的onLongPress事件多长时间?

java - 更改 Libgdx 按钮外观