Fixed buggy mobile zoom
This commit is contained in:
@@ -46,9 +46,7 @@ public class MobileInput extends InputHandler implements GestureListener{
|
|||||||
private final float edgePan = io.anuke.ucore.scene.ui.layout.Unit.dp.scl(60f);
|
private final float edgePan = io.anuke.ucore.scene.ui.layout.Unit.dp.scl(60f);
|
||||||
|
|
||||||
//gesture data
|
//gesture data
|
||||||
private Vector2 pinch1 = new Vector2(-1, -1), pinch2 = pinch1.cpy();
|
|
||||||
private Vector2 vector = new Vector2();
|
private Vector2 vector = new Vector2();
|
||||||
private float initzoom = -1;
|
|
||||||
private boolean zoomed = false;
|
private boolean zoomed = false;
|
||||||
/** Set of completed guides. */
|
/** Set of completed guides. */
|
||||||
private ObjectSet<String> guides = new ObjectSet<>();
|
private ObjectSet<String> guides = new ObjectSet<>();
|
||||||
@@ -696,27 +694,15 @@ public class MobileInput extends InputHandler implements GestureListener{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean pinch(Vector2 initialPointer1, Vector2 initialPointer2, Vector2 pointer1, Vector2 pointer2){
|
public boolean pinch(Vector2 initialPointer1, Vector2 initialPointer2, Vector2 pointer1, Vector2 pointer2){
|
||||||
if(pinch1.x < 0){
|
|
||||||
pinch1.set(initialPointer1);
|
|
||||||
pinch2.set(initialPointer2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pinch1.set(pointer1);
|
|
||||||
pinch2.set(pointer2);
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean zoom(float initialDistance, float distance){
|
public boolean zoom(float initialDistance, float distance){
|
||||||
if(initzoom < 0){
|
|
||||||
initzoom = initialDistance;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(Math.abs(distance - initzoom) > io.anuke.ucore.scene.ui.layout.Unit.dp.scl(100f) && !zoomed){
|
if(Math.abs(distance - initialDistance) > io.anuke.ucore.scene.ui.layout.Unit.dp.scl(100f) && !zoomed){
|
||||||
int amount = (distance > initzoom ? 1 : -1);
|
int amount = (distance > initialDistance ? 1 : -1);
|
||||||
renderer.scaleCamera(Math.round(io.anuke.ucore.scene.ui.layout.Unit.dp.scl(amount)));
|
renderer.scaleCamera(Math.round(io.anuke.ucore.scene.ui.layout.Unit.dp.scl(amount)));
|
||||||
initzoom = distance;
|
|
||||||
zoomed = true;
|
zoomed = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -726,8 +712,6 @@ public class MobileInput extends InputHandler implements GestureListener{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pinchStop(){
|
public void pinchStop(){
|
||||||
initzoom = -1;
|
|
||||||
pinch2.set(pinch1.set(-1, -1));
|
|
||||||
zoomed = false;
|
zoomed = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ public class SectorsDialog extends FloatingDialog{
|
|||||||
addListener(new InputListener(){
|
addListener(new InputListener(){
|
||||||
@Override
|
@Override
|
||||||
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){
|
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){
|
||||||
|
if(pointer != 0) return false;
|
||||||
Cursors.setHand();
|
Cursors.setHand();
|
||||||
lastX = x;
|
lastX = x;
|
||||||
lastY = y;
|
lastY = y;
|
||||||
@@ -83,6 +84,7 @@ public class SectorsDialog extends FloatingDialog{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void touchDragged(InputEvent event, float x, float y, int pointer){
|
public void touchDragged(InputEvent event, float x, float y, int pointer){
|
||||||
|
if(pointer != 0) return;
|
||||||
panX -= x - lastX;
|
panX -= x - lastX;
|
||||||
panY -= y - lastY;
|
panY -= y - lastY;
|
||||||
|
|
||||||
@@ -92,6 +94,7 @@ public class SectorsDialog extends FloatingDialog{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void touchUp(InputEvent event, float x, float y, int pointer, int button){
|
public void touchUp(InputEvent event, float x, float y, int pointer, int button){
|
||||||
|
if(pointer != 0) return;
|
||||||
Cursors.restoreCursor();
|
Cursors.restoreCursor();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user