/******************************************************************************* * Copyright 2011 See AUTHORS file. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package com.badlogic.gdx; import com.badlogic.gdx.Input.Buttons; /** An InputProcessor is used to receive input events from the keyboard and the touch screen (mouse on the desktop). For this it * has to be registered with the {@link Input#setInputProcessor(InputProcessor)} method. It will be called each frame before the * call to {@link ApplicationListener#render()}. Each method returns a boolean in case you want to use this with the * {@link InputMultiplexer} to chain input processors. * * @author mzechner */ public interface InputProcessor { /** Called when a key was pressed * * @param keycode one of the constants in {@link Input.Keys} * @return whether the input was processed */ public boolean keyDown (int keycode); /** Called when a key was released * * @param keycode one of the constants in {@link Input.Keys} * @return whether the input was processed */ public boolean keyUp (int keycode); /** Called when a key was typed * * @param character The character * @return whether the input was processed */ public boolean keyTyped (char character); /** Called when the screen was touched or a mouse button was pressed. The button parameter will be {@link Buttons#LEFT} on iOS. * @param screenX The x coordinate, origin is in the upper left corner * @param screenY The y coordinate, origin is in the upper left corner * @param pointer the pointer for the event. * @param button the button * @return whether the input was processed */ public boolean touchDown (int screenX, int screenY, int pointer, int button); /** Called when a finger was lifted or a mouse button was released. The button parameter will be {@link Buttons#LEFT} on iOS. * @param pointer the pointer for the event. * @param button the button * @return whether the input was processed */ public boolean touchUp (int screenX, int screenY, int pointer, int button); /** Called when a finger or the mouse was dragged. * @param pointer the pointer for the event. * @return whether the input was processed */ public boolean touchDragged (int screenX, int screenY, int pointer); /** Called when the mouse was moved without any buttons being pressed. Will not be called on iOS. * @return whether the input was processed */ public boolean mouseMoved (int screenX, int screenY); /** Called when the mouse wheel was scrolled. Will not be called on iOS. * @param amount the scroll amount, -1 or 1 depending on the direction the wheel was scrolled. * @return whether the input was processed. */ public boolean scrolled (int amount); }