(libgdx学习)GestureDetector

官方文档部分解释

1)

TheGestureListenercan signal whether it consumed the event or wants it to be passed on to the next InputProcessor by returning either true or false respectively from its methods.

As with the events reported to a normalInputProcessor, the respective methods will be called right before the call toApplicationListener.render()on the rendering thread.

TheGestureDetectoralso has a second constructor that allows it to specify various parameters for gesture detection. Please refer to theJavadocsfor more information.

GestureDetector同样适用于inputprocessor对事件处理的的链式传递规则,因为GestureDetector实现了inputprocessor接口


二、应用举例

MyGestureDetector

package com.example.groupactiontest;

import com.badlogic.gdx.input.GestureDetector.GestureListener;
import com.badlogic.gdx.math.Vector2;

public class MyGestureListener implements GestureListener {

	@Override
	public boolean fling(float arg0, float arg1, int arg2) {//fling和pan差不多
		System.out.println("------->fling");
		
		return false;
	}

	@Override
	public boolean longPress(float arg0, float arg1) {//长按
		System.out.println("------->longPress");
		return false;
	}

	@Override
	public boolean pan(float arg0, float arg1, float arg2, float arg3) {
		System.out.println("------->pan");
		return false;
	}

	@Override
	public boolean pinch(Vector2 arg0, Vector2 arg1, Vector2 arg2, Vector2 arg3) {//pinch和zoom差不多
		System.out.println("------->pinch");
		return false;
	}

	@Override
	public boolean tap(float arg0, float arg1, int arg2, int arg3) {//tap和touchdown差不多
		System.out.println("------->tap");
		return false;
	}

	@Override
	public boolean touchDown(float arg0, float arg1, int arg2, int arg3) {
		System.out.println("gesturedetector------->touchDown");
		return true;
	}

	@Override
	public boolean zoom(float arg0, float arg1) {
		System.out.println("------->zoom");
		return false;
	}

}

MyGame

package com.example.groupactiontest;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.Input.Peripheral;
import com.badlogic.gdx.InputMultiplexer;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.input.GestureDetector;

public class MyGame implements ApplicationListener {

	
	InputProcessor inputProcessor;
	
	@Override
	public void create() {
		inputProcessor = new InputProcessor() {
			
			@Override
			public boolean touchUp(int screenX, int screenY, int pointer, int button) {
				// TODO Auto-generated method stub
				return false;
			}
			
			@Override
			public boolean touchDragged(int screenX, int screenY, int pointer) {
				// TODO Auto-generated method stub
				return false;
			}
			
			@Override
			public boolean touchDown(int screenX, int screenY, int pointer, int button) {
				System.out.println("inputprocessor:--->towndown" );
				return false;
			}
			
			@Override
			public boolean scrolled(int amount) {
				// TODO Auto-generated method stub
				return false;
			}
			
			@Override
			public boolean mouseMoved(int screenX, int screenY) {
				// TODO Auto-generated method stub
				return false;
			}
			
			@Override
			public boolean keyUp(int keycode) {
				// TODO Auto-generated method stub
				return false;
			}
			
			@Override
			public boolean keyTyped(char character) {
				// TODO Auto-generated method stub
				return false;
			}
			
			@Override
			public boolean keyDown(int keycode) {
				// TODO Auto-generated method stub
				return false;
			}
		};
		
		//GestureDetector同样适用于inputprocessor的链式传递规则(因为GestureDetector就是实现了inputprocessor接口的)
		InputMultiplexer inputMultiplexer = new InputMultiplexer();
		inputMultiplexer.addProcessor(new GestureDetector(new MyGestureListener()));
		inputMultiplexer.addProcessor(inputProcessor);
		
		Gdx.input.setInputProcessor(inputMultiplexer);
	}

	@Override
	public void dispose() {
		// TODO Auto-generated method stub

	}

	@Override
	public void pause() {
		// TODO Auto-generated method stub

	}

	@Override
	public void render() {
		Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
		
		
	}

	@Override
	public void resize(int arg0, int arg1) {
		// TODO Auto-generated method stub

	}

	@Override
	public void resume() {
		// TODO Auto-generated method stub

	}

}


三、效果图

若GestureDetector中的touchDown的返回值为false,则logcat中的输出结果是



若GestureDetector中的touchDown的返回值为true,则logcat中的输出结果是


四、源码下载

http://download.csdn.net/detail/caihongshijie6/7041627



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值