Libgdx 触摸事件解析

1.如何让Stage接受到触摸事件:

// 注册监听器

InputMultiplexer inputMultiplexer = new InputMultiplexer(getStage(),new GestureDetector(this));

Gdx.input.setInputProcessor(inputMultiplexer);

此处第二个为手势的监测。(滑动,缩放等)

2.这里特殊说明一下,所有事件的处理都是绘制之前的。

Gdx.input.justTouched()

Gdx.input.isTouched()

上面两个方法都是用来获取屏幕是否有点击(TouchDown操作)。

如果你想通过上面方法,进行Screen的切换操作,可不是个好主意。

if (Gdx.input.justTouched()) {

// If the screen is touched , go to the next screen

}

切换到第二个Screen的时候,第二个Screen会接受到touchUp事件,如果一些变量涉及到touchDown处理就出错。

原因如下:

第一个Screen处理down事件->切换screen,screen注册了事件接收器,进行绘制处理->此时已经是第二个Screen在显示,就会处理up事件了。

一个事件,起于TouchDown,终于TouchUp!


PS:如果想通过点击切换Screen,可以通过某个控件,如Image点击来实现。

    Image screenBg.... 背景层,和屏幕大小一致

screenBg.addListener(new InputListener() {

@Override

public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {

// 只有返回true,才会有touchUp事件的触发。

return true;

}

@Override

public void touchUp(InputEvent event, float x, float y, int pointer, int button) {

if (条件触发) {

CHGame.getInstance().setScreen(nextScreen);

}

}

});


时间: 2024-08-03 23:04:29

Libgdx 触摸事件解析的相关文章

iOS触摸事件深度解析-备用

概述 本文主要解析从我们的手指触摸苹果设备到最终响应事件的整个处理机制.本质上讲,整个过程可以分为两个步骤: 步骤1:找目标.在iOS视图层次结构中找到触摸事件的最终接受者: 步骤2:事件响应.基于iOS响应者链(Responder Chain)处理触摸事件 找目标 在找目标阶段所使用到的两大利器是UIView的 hitTest:withEvent: 以及 pointInside:withEvent: 方法.找目标的过程也称为hit-Testing.先来看一张图(注: 图来自MJ)比较直观: 下

【原】iOS触摸事件深度解析

概述 本文主要解析从我们的手指触摸苹果设备到最终响应事件的整个处理机制.本质上讲,整个过程可以分为两个步骤: 步骤1:找目标.在iOS视图层次结构中找到触摸事件的最终接受者: 步骤2:事件响应.基于iOS响应者链(Responder Chain)处理触摸事件 找目标 在找目标阶段所使用到的两大利器是UIView的 hitTest:withEvent: 以及 pointInside:withEvent: 方法.找目标的过程也称为hit-Testing.先来看一张图(注: 图来自MJ)比较直观: 下

Android触摸事件分发机制完全解析《一》

最近在做高德地图的时候,由于用户的要求,不得不用ScrollVew嵌套MapView,虽然很官方要求不建议这样做,但也迫于无奈- 魔高一尺,道高一丈.有什么事情事程序员不能解决的,如果有那就是解决两次. 鉴于用到了触摸事件,于是就来总结了Android的触摸事件机制. 首先当用户进行屏幕操作的时候,则有两种情况 一是按键事件 二是触摸事件 按键事件分为长按和点击事件,过于简单,这里不再进行总结. 触摸事件 触摸事件的组成: - 一个actionDown - n个actionMove - 一个ac

android源码解析(三十)-->触摸事件分发流程

前面一篇文章中我们分析了App返回按键的分发流程,从Native层到ViewRootImpl层到DocorView层到Activity层,以及在Activity中的dispatchKeyEvent方法中分发事件,最终调用了Activity的finish方法,即销毁Activity,所以一般情况下假如我们不重写Activity的onBackPress方法或者是onKeyDown方法,当我们按下并抬起返回按键的时候默认都是销毁当前Activity.而本文中我们主要介绍触摸事件的分发流程,从Nativ

iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

-- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件.远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 iOS事件 在iOS中事件分为三类: 触摸事件:通过触摸.手势进行触发(例如手指点击.缩放) 运动事件:通过加速器进行触发(例如手机晃动) 远程控制事件:通过其他远程设备触发(例如耳机控制

安卓权威编程指南-笔记 (第29章定制视图与触摸事件)

1.定制视图 Android自带众多优秀的标准视图与组件,但有时为追求独特的应用视觉效果,我们仍需创建定制视图. 定制视图分为两大类别: 简单视图: 简单视图内部也可以很复杂,之所以归为简单类别,是因为简单视图不包括子视图,而且简单视图几乎总是会执行定制绘制. 聚合视图:聚合视图由其他视图对象组成,聚合视图通常管理着子视图,但不负责执行定制绘制,图形绘制任务都委托给了各个子视图. 创建定制视图的所需的三大步骤: 选择超类.对于简单定制视图而言,View是个空白画布,因此它作为超类最常见,对于聚合

转发:iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

-- iOS事件全面解析 转载来自崔江涛(KenshinCui) 链接:http://www.cnblogs.com/kenshincui/p/3950646.html 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件.远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 iOS事件 在iOS中事件分为三类: 触摸事

iOS触摸事件深入

转载自:http://www.cnblogs.com/wengzilin/p/4720550.html 概述 本文主要解析从我们的手指触摸苹果设备到最终响应事件的整个处理机制.本质上讲,整个过程可以分为两个步骤: 步骤1:找目标.在iOS视图层次结构中找到触摸事件的最终接受者: 步骤2:事件响应.基于iOS响应者链(Responder Chain)处理触摸事件 找目标 在找目标阶段所使用到的两大利器是UIView的 hitTest:withEvent: 以及 pointInside:withEv

25.Unity3D手机中Input类touch详解-Unity触屏事件解析到底(Twisted Fate)

首先贴一下Unity支持的模型文件类型,以前没有收集过. Unity支持两种类型的3D文件格式: 1.  通用的"出口型"3D文件 如.fbx..dae..3ds..dxf..obj等文件格式. 2.  3D软件专用的3D文件格式 如Max, Maya, Blender,Cinema4D, Modo, Lightwave & Cheetah3D 等软件所支持的格式,如.MAX, .MB, .MA等等. Unity3D手机中Input类touch详解: 1.Input.touch