Fixed buggy mobile zoom

This commit is contained in:
Anuken 2018-09-21 09:02:25 -04:00
parent 6a6e80b6d8
commit 7937d99a73
2 changed files with 5 additions and 18 deletions

View File

@ -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);
//gesture data
private Vector2 pinch1 = new Vector2(-1, -1), pinch2 = pinch1.cpy();
private Vector2 vector = new Vector2();
private float initzoom = -1;
private boolean zoomed = false;
/** Set of completed guides. */
private ObjectSet<String> guides = new ObjectSet<>();
@ -696,27 +694,15 @@ public class MobileInput extends InputHandler implements GestureListener{
@Override
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;
}
@Override
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){
int amount = (distance > initzoom ? 1 : -1);
if(Math.abs(distance - initialDistance) > io.anuke.ucore.scene.ui.layout.Unit.dp.scl(100f) && !zoomed){
int amount = (distance > initialDistance ? 1 : -1);
renderer.scaleCamera(Math.round(io.anuke.ucore.scene.ui.layout.Unit.dp.scl(amount)));
initzoom = distance;
zoomed = true;
return true;
}
@ -726,8 +712,6 @@ public class MobileInput extends InputHandler implements GestureListener{
@Override
public void pinchStop(){
initzoom = -1;
pinch2.set(pinch1.set(-1, -1));
zoomed = false;
}

View File

@ -75,6 +75,7 @@ public class SectorsDialog extends FloatingDialog{
addListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){
if(pointer != 0) return false;
Cursors.setHand();
lastX = x;
lastY = y;
@ -83,6 +84,7 @@ public class SectorsDialog extends FloatingDialog{
@Override
public void touchDragged(InputEvent event, float x, float y, int pointer){
if(pointer != 0) return;
panX -= x - lastX;
panY -= y - lastY;
@ -92,6 +94,7 @@ public class SectorsDialog extends FloatingDialog{
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button){
if(pointer != 0) return;
Cursors.restoreCursor();
}
});