9.2.1、Libgdx的输入处理之轮询

简介: (官网:www.libgdx.cn) 轮询是检测输入设备的当前状态,比如特定的按键按下,屏幕第一个手指的位置等等。这是一个快速简单的处理用户输入的方式,并且应用到很多的游戏中。

(官网:www.libgdx.cn

轮询是检测输入设备的当前状态,比如特定的按键按下,屏幕第一个手指的位置等等。这是一个快速简单的处理用户输入的方式,并且应用到很多的游戏中。

注意:如果你处理轮询,可能会丢失事件。如果最好采用事件处理。

轮询键盘

轮询键盘输入可以通过简单的一行代码实现:

boolean isAPressed = Gdx.input.isKeyPressed(Keys.A);

传递给方法的值就是我们上一篇提到的Key Code,可以查阅上一篇文章查看相关键值。

轮询触摸或鼠标

轮询触摸和鼠标输入,这里有一系列的方法。要检测一个或多个点按下(等同鼠标单击),可以使用如下代码:

boolean isTouched = Gdx.input.isTouched();

对于多点触摸来说可以判断某一个触摸点是否释放与否:

// 返回当前是否被触摸
boolean firstFingerTouching = Gdx.input.isTouched(0);
boolean secondFingerTouching = Gdx.input.isTouched(1);
boolean thirdFingerTouching = Gdx.input.isTouched(2);

每个手指在屏幕上按下都会获得一个指针索引。第一个手指获得0,接下来为1等等。如果一个手指离开屏幕。指针索引将被释放。

  • 第一个手指按下> 指针索引为0.

  • 第二个手指按下>指针索引为1

  • 第三个手指按下>指针索引为2

  • 第二个手指释放>指针索引1释放

  • 第一个手指释放>指针索引0释放,现在只有指针索引2可用

  • 另外的一个手指按下>指针索引为0.

在桌面和浏览器中只支持单点,也就是同时只能按下一个“手指”。
如果你想检测用户是否按下和释放某个手指,可以使用如下方法:

// 将返回屏幕刚刚是否被触摸
boolean justTouched = Gdx.input.justTouched();

这可以用于快速检测是否触发触摸操作。比如“点击屏幕继续”。需要注意的是,它是基于轮询,所以结果可能不准确。

获取相关坐标可以使用如下代码:

int firstX = Gdx.input.getX();
int firstY = Gdx.input.getY();
int secondX = Gdx.input.getX(1);
int secondY = Gdx.input.getY(1);

这样就获取了指针索引0(0为默认)的坐标和指针索引1的坐标。

鼠标按钮

在桌面环境下你可以通过如下代码检测鼠标按键是否被按下:

boolean leftPressed = Gdx.input.isButtonPressed(Input.Buttons.LEFT);
boolean rightPressed = Gdx.input.isButtonPressed(Input.Buttons.RIGHT);

需要注意的是,在android中我们仅仅模拟鼠标左键单击。任何触摸事件将视为鼠标单击。触摸屏幕显然没有鼠标左右键的概念。
www.libgdx.cn版权所有,如需转载,注明出处)

目录
相关文章
|
11天前
|
Java API 调度
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
37 0
|
2月前
|
存储 机器人
在阿里云RPA中,你可以通过以下步骤来更改默认唤醒IE浏览器的地址
【2月更文挑战第28天】在阿里云RPA中,你可以通过以下步骤来更改默认唤醒IE浏览器的地址
21 1
|
11月前
|
消息中间件 存储 API
事件,消息,消息处理函数,第一个图形界面程序(附带官方解释链接)
事件,消息,消息处理函数,第一个图形界面程序(附带官方解释链接)
十六、停止等待协议
十六、停止等待协议
十六、停止等待协议
|
网络协议 程序员 API
Python实现Appium端口检测与释放
Python实现Appium端口检测与释放
148 0
Python实现Appium端口检测与释放
|
Web App开发 存储 缓存
【7000字】一晚上爆肝浏览器从输入到渲染完毕原理
Chrome comic,推荐一本Chrome架构简要概述的漫画,Chrome架构于2008年同Chrome浏览器一起发布,原文地址,中文翻译。
175 0
|
存储 程序员 图形学
Win知识 - 程序是怎样跑起来的——文字及图片的显示机制
Win知识 - 程序是怎样跑起来的——文字及图片的显示机制
180 0
Win知识 - 程序是怎样跑起来的——文字及图片的显示机制
Appium问题解决方案(1)- 设置unicodeKeyboard: True运行脚本后,手机输入时无法调出软键盘
Appium问题解决方案(1)- 设置unicodeKeyboard: True运行脚本后,手机输入时无法调出软键盘
347 0
Appium问题解决方案(1)- 设置unicodeKeyboard: True运行脚本后,手机输入时无法调出软键盘
|
Web App开发
Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间
Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间
632 0
Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间