У меня есть поле из клеток, есть игрок - спрайт, есть массив точек(путь для игрока в определенную точку). У класса Field
, содержащего информацию о клетках, имеется метод setListener
для каждой клетки (при нажатии на клетку игрок перемещается в нее методом changePosition
по пути из точек).
задача - сделать так чтобы игрок перемещался с интервалом (как бы шел по каждой точке). Он у меня либо перемещается очень быстро, либо ждет -> что-то выполняет -> а потом опять же быстро перемещается.
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0.2f, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
spriteBatch.begin();
spriteBatch.setProjectionMatrix(camera.combined);
field.drawField(spriteBatch);
field.setListener();
p1.draw(spriteBatch);
spriteBatch.end();
}
public void setListener() {
for (int i = 0; i < getLength(); i++) {
for (int j = 0; j < getLength(); j++) {
Step step = fieldMatrix[i][j];
if (step.isPath()) {
if (Gdx.input.isTouched()) {
float tX = Gdx.input.getX();
float tY = Gdx.input.getY();
Vector3 v = new Vector3(tX, tY, 0);
camera.unproject(v);
Rectangle getBounds = step.getBoundingRectangle();
if (getBounds.contains(v.x, v.y)) {
player.changePosition(j, i);
break;
}
}
}
}
}
}
public void changePosition(int x, int y) {
int sX = (int) (posX) / 60;
int sY = (int) (posY) / 60;
if (x != sX || y != sY) {
Point start = new Point(sX, sY);
Point end = new Point(x, y);
Point[] pathArray = find(start, end);
if (pathArray != null) {
for (int i = 0; i < pathArray.length; i++) {
try {
TimeUnit.MILLISECONDS.sleep(1000);
}
catch (InterruptedException ie){
ie.printStackTrace();
}
float changeX = pathArray[i].getX() * 60 + 7;
float changeY = pathArray[i].getY() * 60 + 7;
this.setPosition(changeY, changeX);
this.draw(batch);
this.updateCoordinates(changeX, changeY);
}
} else System.out.println("путь - null");
}
}
Фрилансер или Digital-агентство - Как сделать правильный выбор?
Накидал структуру и основные стили: https://fiddlejshell
Всем привет, ищу готовое (или почти готовое) решение для слайдера-галереиОсобенность в том, что бы можно было управлять слайдами как при клике...