28
Дек
2016

как использовать touchDragged в libGDX(android) для реализации движения с помощью свайпов?

Только начал работу с libGDX Вопрос: как реализовать движение объекта с помощью свайпов? Всего 4 направления вверх, вниз, влево, вправо я понимаю, что нужно искать дельту в координатах между началом "тыка" и когда человек отпускает экран, но я не знаю, как это можно на libGDX реализовать По идее можно использовать touchDown и touchDragged(или touchUp), но я новичек и не знаю, как прописать подобную логику, можете помочь?

Если это хоть как-то поможет, то вот класс, где нужно эту логику реализовать:

 package com.bellkross.ggame.gameLevels;

import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.bellkross.ggame.states.GameStateManager;
import com.bellkross.ggame.states.MenuState;
import com.bellkross.ggame.states.State;


public class Level_1 extends State implements InputProcessor{

    private OrthographicCamera camera;
    private Texture level_1_Background;
    private Texture gameBackground;
    private Texture gg;


    public Level_1(GameStateManager gsm) {
    super(gsm);
    camera = new OrthographicCamera();
    gameBackground = new Texture("gameBackground.png");
    level_1_Background = new Texture("level_1_Background.png");
    gg = new Texture("gg30.png");
}

@Override
protected void handleInput() {

}

@Override
public void update(float dt) {

}

@Override
public void render(SpriteBatch sb) {
    sb.setProjectionMatrix(camera.combined);
    sb.begin();
    sb.draw(level_1_Background, 0, 0, MenuState.WIDTH, MenuState.HEIGHT);
    sb.draw(gameBackground, 0, 0, MenuState.WIDTH, MenuState.HEIGHT);
    sb.draw(gg, 0, MenuState.HEIGHT - gg.getHeight());
    sb.end();

}

@Override
public void dispose() {
    level_1_Background.dispose();
    gameBackground.dispose();
    gg.dispose();
}


/**touchDown():метод вызывается, когда палец коснулся экрана или была нажата кнопка мыши.
 * Сообщает последние известные координаты.*/
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
    return true;
}

/**touchUp(): метод вызывается, когда палец был убран с экрана или была отпущена кнопка мыши.
 *Сообщает последние известные координаты.
 */
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
    return false;
}

/**touchDragged(): метод вызывается, когда палец перемещается по экрану
 * или перемещается мышь с нажатой кнопкой.*/
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {

    return true;
}

@Override
public boolean scrolled(int amount) {
    return false;
}
@Override
public boolean keyDown(int keycode) {
    return false;
}
@Override
public boolean keyUp(int keycode) {
    return false;
}
@Override
public boolean keyTyped(char character) {
    return false;
}
@Override
public boolean mouseMoved(int screenX, int screenY) {
    return false;


  }
}

Источник: https://ru.stackoverflow.com/questions/608985/%D0%BA%D0%B0%D0%BA-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-touchdragged-%D0%B2-libgdxandroid-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C

Share

Тебе может это понравится...