Implemented touch/scrollwheel zooming, fixed many Android bugs
This commit is contained in:
@@ -10,11 +10,13 @@ import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.World;
|
||||
import io.anuke.mindustry.world.blocks.Blocks;
|
||||
import io.anuke.ucore.core.*;
|
||||
import io.anuke.ucore.scene.ui.layout.Unit;
|
||||
|
||||
public class GestureHandler extends GestureAdapter{
|
||||
Vector2 pinch1 = new Vector2(-1, -1), pinch2 = pinch1.cpy();
|
||||
Vector2 vector = new Vector2();
|
||||
float initzoom = -1;
|
||||
boolean zoomed = false;
|
||||
|
||||
@Override
|
||||
public boolean longPress(float x, float y){
|
||||
@@ -66,15 +68,17 @@ public class GestureHandler extends GestureAdapter{
|
||||
|
||||
@Override
|
||||
public boolean zoom(float initialDistance, float distance){
|
||||
|
||||
if(initzoom <= 0)
|
||||
if(initzoom < 0){
|
||||
initzoom = initialDistance;
|
||||
}
|
||||
|
||||
control.targetzoom /= (distance/initzoom);
|
||||
control.clampZoom();
|
||||
control.camera.update();
|
||||
|
||||
initzoom = distance;
|
||||
if(Math.abs(distance - initzoom) > Unit.dp.inPixels(100f) && !zoomed){
|
||||
int amount = (distance > initzoom ? 1 : -1);
|
||||
control.scaleCamera(Math.round(Unit.dp.inPixels(amount)));
|
||||
initzoom = distance;
|
||||
zoomed = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -83,6 +87,7 @@ public class GestureHandler extends GestureAdapter{
|
||||
public void pinchStop () {
|
||||
initzoom = -1;
|
||||
pinch2.set(pinch1.set(-1, -1));
|
||||
zoomed = false;
|
||||
}
|
||||
|
||||
int touches(){
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.badlogic.gdx.Input.Buttons;
|
||||
import com.badlogic.gdx.Input.Keys;
|
||||
|
||||
import io.anuke.mindustry.Inventory;
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.resource.ItemStack;
|
||||
import io.anuke.mindustry.resource.Weapon;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
@@ -14,7 +15,6 @@ import io.anuke.mindustry.world.blocks.Blocks;
|
||||
import io.anuke.mindustry.world.blocks.ProductionBlocks;
|
||||
import io.anuke.ucore.core.*;
|
||||
import io.anuke.ucore.scene.utils.Cursors;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
public class Input{
|
||||
|
||||
@@ -23,12 +23,16 @@ public class Input{
|
||||
if(player.health <= 0) return;
|
||||
|
||||
if(Inputs.scrolled()){
|
||||
Vars.control.scaleCamera(Inputs.scroll());
|
||||
//TODO
|
||||
/*
|
||||
int index = currentWeapon();
|
||||
|
||||
index -= Inputs.scroll();
|
||||
player.weapon = control.getWeapons().get(Mathf.clamp(index, 0, control.getWeapons().size-1));
|
||||
|
||||
ui.updateWeapons();
|
||||
*/
|
||||
}
|
||||
|
||||
if(Inputs.keyUp("rotate"))
|
||||
|
||||
Reference in New Issue
Block a user