Fixed issue with AndroidInput not resetting the last touch position correctly on the UP and DOWN actions. See forum post http://jmonkeyengine.org/groups/android/forum/topic/small-bug-in-androidinput/#post-183530
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9572 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
c7186886bc
commit
242f5d82f9
@ -227,6 +227,7 @@ public class AndroidInput implements
|
|||||||
int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK)
|
int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK)
|
||||||
>> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
|
>> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
|
||||||
int pointerId = event.getPointerId(pointerIndex);
|
int pointerId = event.getPointerId(pointerIndex);
|
||||||
|
Vector2f lastPos = lastPositions.get(pointerId);
|
||||||
|
|
||||||
// final int historySize = event.getHistorySize();
|
// final int historySize = event.getHistorySize();
|
||||||
//final int pointerCount = event.getPointerCount();
|
//final int pointerCount = event.getPointerCount();
|
||||||
@ -240,6 +241,9 @@ public class AndroidInput implements
|
|||||||
touch.setPressure(event.getPressure(pointerIndex));
|
touch.setPressure(event.getPressure(pointerIndex));
|
||||||
processEvent(touch);
|
processEvent(touch);
|
||||||
|
|
||||||
|
lastPos = new Vector2f(event.getX(pointerIndex), view.getHeight() - event.getY(pointerIndex));
|
||||||
|
lastPositions.put(pointerId, lastPos);
|
||||||
|
|
||||||
bWasHandled = true;
|
bWasHandled = true;
|
||||||
break;
|
break;
|
||||||
case MotionEvent.ACTION_POINTER_UP:
|
case MotionEvent.ACTION_POINTER_UP:
|
||||||
@ -251,13 +255,14 @@ public class AndroidInput implements
|
|||||||
touch.setTime(event.getEventTime());
|
touch.setTime(event.getEventTime());
|
||||||
touch.setPressure(event.getPressure(pointerIndex));
|
touch.setPressure(event.getPressure(pointerIndex));
|
||||||
processEvent(touch);
|
processEvent(touch);
|
||||||
|
lastPositions.remove(pointerId);
|
||||||
|
|
||||||
bWasHandled = true;
|
bWasHandled = true;
|
||||||
break;
|
break;
|
||||||
case MotionEvent.ACTION_MOVE:
|
case MotionEvent.ACTION_MOVE:
|
||||||
// Convert all pointers into events
|
// Convert all pointers into events
|
||||||
for (int p = 0; p < event.getPointerCount(); p++) {
|
for (int p = 0; p < event.getPointerCount(); p++) {
|
||||||
Vector2f lastPos = lastPositions.get(p);
|
lastPos = lastPositions.get(p);
|
||||||
if (lastPos == null) {
|
if (lastPos == null) {
|
||||||
lastPos = new Vector2f(event.getX(p), view.getHeight() - event.getY(p));
|
lastPos = new Vector2f(event.getX(p), view.getHeight() - event.getY(p));
|
||||||
lastPositions.put(event.getPointerId(p), lastPos);
|
lastPositions.put(event.getPointerId(p), lastPos);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user