package com.arretadogames.pilot.screens; import com.arretadogames.pilot.config.GameSettings; import android.view.MotionEvent; public class InputEventHandler { private MotionEvent motionEvent; private int offsetX, offsetY; public InputEventHandler(MotionEvent event) { this.motionEvent = event; } public void setMotionEvent(MotionEvent event) { this.motionEvent = event; } public float getX() { return (motionEvent.getX(getIndex()) / GameSettings.WidthRatio) + getOffsetX(); } public float getY() { return (motionEvent.getY(getIndex()) / GameSettings.HeightRatio) + getOffsetY(); } public int getAction() { return motionEvent.getAction(); } public MotionEvent getEvent() { return motionEvent; } public float getX(int pointerIndex) { return (motionEvent.getX(pointerIndex) / GameSettings.WidthRatio) + getOffsetX(); } public float getY(int pointerIndex) { return (motionEvent.getY(pointerIndex) / GameSettings.HeightRatio) + getOffsetY(); } private int getIndex() { int idx = (motionEvent.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; return idx; } public int getOffsetX() { return offsetX; } public void setOffsetX(int offsetX) { this.offsetX = offsetX; } public int getOffsetY() { return offsetY; } public void setOffsetY(int offsetY) { this.offsetY = offsetY; } }