diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameRenderer.java b/core/src/ru/deadsoftware/cavedroid/game/GameRenderer.java
index 36f6c75aadbe64eb4de8115db837ba7de59a8d35..0dcbefcc575e7d3c2c0a1ded8b533bc5278dd3a6 100644 (file)
import com.badlogic.gdx.utils.ObjectMap;
import com.badlogic.gdx.utils.TimeUtils;
import ru.deadsoftware.cavedroid.MainConfig;
import com.badlogic.gdx.utils.ObjectMap;
import com.badlogic.gdx.utils.TimeUtils;
import ru.deadsoftware.cavedroid.MainConfig;
-import ru.deadsoftware.cavedroid.game.input.IGameInputHandler;
+import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler;
+import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler;
import ru.deadsoftware.cavedroid.game.input.Joystick;
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction;
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction;
import ru.deadsoftware.cavedroid.game.input.Joystick;
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction;
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction;
private final CursorMouseInputHandler mCursorMouseInputHandler;
private final MouseInputActionMapper mMouseInputActionMapper;
private final KeyboardInputActionMapper mKeyboardInputActionMapper;
private final CursorMouseInputHandler mCursorMouseInputHandler;
private final MouseInputActionMapper mMouseInputActionMapper;
private final KeyboardInputActionMapper mKeyboardInputActionMapper;
- private final Set<IGameInputHandler<MouseInputAction>> mMouseInputHandlers;
- private final Set<IGameInputHandler<KeyboardInputAction>> mKeyboardInputHandlers;
+ private final Set<IMouseInputHandler> mMouseInputHandlers;
+ private final Set<IKeyboardInputHandler> mKeyboardInputHandlers;
private final GameWindowsManager mGameWindowsManager;
private final TooltipManager mTooltipManager;
private final GameWindowsManager mGameWindowsManager;
private final TooltipManager mTooltipManager;
CursorMouseInputHandler cursorMouseInputHandler,
MouseInputActionMapper mouseInputActionMapper,
KeyboardInputActionMapper keyboardInputActionMapper,
CursorMouseInputHandler cursorMouseInputHandler,
MouseInputActionMapper mouseInputActionMapper,
KeyboardInputActionMapper keyboardInputActionMapper,
- Set<IGameInputHandler<MouseInputAction>> mouseInputHandlers,
- Set<IGameInputHandler<KeyboardInputAction>> keyboardInputHandlers,
+ Set<IMouseInputHandler> mouseInputHandlers,
+ Set<IKeyboardInputHandler> keyboardInputHandlers,
GameWindowsManager gameWindowsManager,
TooltipManager tooltipManager) {
super(mainConfig.getWidth(), mainConfig.getHeight());
GameWindowsManager gameWindowsManager,
TooltipManager tooltipManager) {
super(mainConfig.getWidth(), mainConfig.getHeight());
float camTargetX, camTargetY;
float camTargetX, camTargetY;
- if (player.controlMode == Player.ControlMode.WALK) {
+ boolean followPlayer = player.controlMode == Player.ControlMode.WALK || !mMainConfig.isTouch();
+
+ if (followPlayer) {
camTargetX = plTargetX + Math.min(player.getVelocity().x * 2, getWidth() / 2);
camTargetY = plTargetY + player.getVelocity().y;
} else {
camTargetX = plTargetX + Math.min(player.getVelocity().x * 2, getWidth() / 2);
camTargetY = plTargetY + player.getVelocity().y;
} else {
Vector2 moveVector = new Vector2(camTargetX - camCenterX, camTargetY - camCenterY);
Vector2 moveVector = new Vector2(camTargetX - camCenterX, camTargetY - camCenterY);
- if (player.controlMode == Player.ControlMode.WALK && player.getVelocity().isZero()) {
+ if (followPlayer && player.getVelocity().isZero()) {
mCameraDelayMs = TimeUtils.millis();
mCamCenterToPlayer.x = plTargetX - camCenterX;
mCamCenterToPlayer.y = plTargetY - camCenterY;
mCameraDelayMs = TimeUtils.millis();
mCamCenterToPlayer.x = plTargetX - camCenterX;
mCamCenterToPlayer.y = plTargetY - camCenterY;
boolean anyProcessed = false;
boolean anyProcessed = false;
- for (IGameInputHandler<MouseInputAction> handler : mMouseInputHandlers) {
+ for (IMouseInputHandler handler : mMouseInputHandlers) {
final boolean conditions = handler.checkConditions(action);
if (conditions) {
anyProcessed = true;
final boolean conditions = handler.checkConditions(action);
if (conditions) {
anyProcessed = true;
boolean anyProcessed = false;
boolean anyProcessed = false;
- for (IGameInputHandler<KeyboardInputAction> handler : mKeyboardInputHandlers) {
+ for (IKeyboardInputHandler handler : mKeyboardInputHandlers) {
final boolean conditions = handler.checkConditions(action);
if (conditions) {
anyProcessed = true;
final boolean conditions = handler.checkConditions(action);
if (conditions) {
anyProcessed = true;