(官网: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版权所有,如需转载,注明出处)

9.2.1、Libgdx的输入处理之轮询的更多相关文章

  1. 9.2、Libgdx的输入处理之鼠标、触摸和键盘

    (官网:www.libgdx.cn) Libgdx支持的最主要的设备是desktop或浏览器的鼠标支持,Android的触摸屏支持和键盘的支持.我们接下来了解一下. 键盘 用户按下或释放一个按键生成了 ...

  2. 9、Libgdx的输入处理

    (官网:www.libgdx.cn) 不同的平台有着不同的输入方式.桌面用户可以通过键盘和鼠标与应用进行交互,基于浏览器的游戏也是这样.在Android中,鼠标被触摸屏所替代,通常没有实体键盘.And ...

  3. 采用轮询的方式检测串口输入&&采用中断的方式检测串口输入的区别!

    区别1:中断USART1_IRQHandler()不放进main(主函数)里,而轮询检测rcv()需要: 但是需要在主函数里对中断NVIC()进行初始化,因为所有程序都是从主函数开始一步一步执行,想要 ...

  4. 9.2.2、Libgdx的输入处理之事件处理

    (官网:www.libgdx.cn) 事件处理可以更加准确的获取用户的输入.事件处理提供了一种可以通过用户接口进行交互的方法.比如按下.释放一个按钮. 输入处理 事件处理通过观察者模式来完成.首先,需 ...

  5. 9.1、Libgdx的输入处理的配置和查询

    (官网:www.libgdx.cn) 有时判断是否支持输入设备是必要的.通常你的游戏不需要支持所有的输入设备.比如你可能不需要加速度计或者罗盘.这时我们需要禁用这些设备保持电量.接下来将教你怎样做. ...

  6. Jenkins持续集成学习-Windows环境进行.Net开发3

    目录 Jenkins持续集成学习-Windows环境进行.Net开发3 目录 前言 目标 优化nuget包生成流程 自动触发构建 Jenkins定时轮询触发 SVN客户端钩子触发 SVN服务器钩子触发 ...

  7. STM32 GPIO输入输出(基于HAL库)

    一.基础认识 GPIO全名为General Purpose Input Output,即通用输入输出.有时候简称为"IO口".通用,说明它是常见的.输入输出,就是说既能当输入口使用 ...

  8. 图解 Kafka 超高并发网络架构演进过程

    阅读本文大约需要 30 分钟. 大家好,我是 华仔, 又跟大家见面了. 上一篇作为专题系列的第一篇,我们深度剖析了关于 Kafka 存储架构设计的实现细节,今天开启第二篇,我们来深度剖析下「Kafka ...

  9. Libgdx 开发指南(1.2) 应用框架——模块概览

    模块概览 引言 LibGDX由一些为一个典型游戏架构中的各个步骤提供服务的模块组成. Input:为所有平台提供一致的输入模型与处理器.支持键盘.触屏.加速度传感器与鼠标. Graphics:使用硬件 ...

随机推荐

  1. Oracle知识梳理(一)理论篇:基本概念和术语整理

    理论篇:基本概念和术语整理 一.关系数据库           关系数据库是目前应用最为广泛的数据库系统,它采用关系数据模型作为数据的组织方式,关系数据模型由关系的数据结构,关系的操作集合和关系的完整 ...

  2. Windows环境下,从零开始搭建Nodejs+Express+Ejs框架(一)---安装nodejs

    第一步,安装nodejs https://nodejs.org/en/download/ 这个是nodejs的官网,由于操作系统是win7 64位的,所以,我下载的是node-v8.11.1-x64的 ...

  3. 终止Docker容器

    可以使用 docker stop 来终止一个运行中的容器. 此外,当Docker容器中指定的应用终结时,容器也自动终止. 例如对于上一章节中只启动了一个终端的容器,用户通过 exit 命令或 Ctrl ...

  4. APP自动化框架LazyAndroid使用手册(4)--测试模板工程详解

    概述 前面的3篇博文分别对lazyAndroid的框架简介.元素抓取和核心API进行了说明,本文将基于框架给出的测试模板工程,详细阐述下使用该框架进行安卓UI自动化测试的步骤. 模板工程 先来看一下模 ...

  5. CSAPP缓冲区溢出攻击实验(下)

    CSAPP缓冲区溢出攻击实验(下) 3.3 Level 2: 爆竹 实验要求 这一个Level的难度陡然提升,我们要让getbuf()返回到bang()而非test(),并且在执行bang()之前将g ...

  6. Android开发之手把手教你写ButterKnife框架(一)

    欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/52662376 本文出自:[余志强的博客] 一.概述 JakeWhar ...

  7. 浅析"Sublabel-Accurate Relaxation of Nonconvex Energies" CVPR 2016 Best Paper Honorable Mention

    今天作了一个paper reading,感觉论文不错,马克一下~ CVPR 2016 Best Paper Honorable Mention "Sublabel-Accurate Rela ...

  8. MT8127:改变安卓系统权限问题

    找到对应的文件: system/extras/su/su.c 在main函数中,开头我们可以看下以下代码: uid_t current_uid = getuid(); if (current_uid ...

  9. mxgraph进阶(四)mxGraph再启程

    mxgraph进阶(四)mxGraph再启程 前言   小论文Constructing User Interaction Behaviors Net from System Log. (AICE 20 ...

  10. SpriteKit塔防游戏动态改变防御塔价格标签的颜色

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 本篇blog在DinoDefense塔防游戏基础之上做一处小的 ...