在tile单元格之间的LibGDX随机空间

时间:2017-06-21 09:52:56

标签: java libgdx

我创建了一个看起来像这样的单元格板:

image

正如您所看到的,您可以看到每隔几个高度单元格的间距就会增加几个像素。

但这只有在我使用相机翻译拖动地图后才会发生。

这就是我绘制地图的方式:

    batch.setProjectionMatrix(camera.combined);
    camera.update();

    batch.begin();

    batch.draw(sea, -5000, -5000, 0, 0, 10000, 10000);
    int[][] map = context.getBattle().getMap();

    int widthOffset = 0;
    int heightOffset = 0;

    for(int i = 0; i < map.length; i++) {
        for (int j = 0; j < map[i].length; j++) {
            heightOffset += 65;
            batch.draw(tiles.get(map[i][j]), i + widthOffset, j + heightOffset, 65, 65);

        }
        widthOffset += 65;
        heightOffset = 0;
    }

    batch.end();

我的翻译在这里被称为:

public void handleDrag(float screenX, float screenY) {
    camera.translate(-screenX, screenY);
}

由我的输入处理器:

@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
    float x = Gdx.input.getDeltaX();
    float y = Gdx.input.getDeltaY();
    context.getRendering().getSeaBattle().handleDrag(x, y);
    return false;
}

我尝试过更改offsetHeight增量,但没有运气,它在我第一次拖动后开始执行这些空格。

1 个答案:

答案 0 :(得分:1)

也许您可以创建平铺地图而不是绘制单独的图块?考虑到libgdx支持这一点,所以你不必自己做这些计算。

学习使用此瓷砖地图或任何其他瓷砖地图创建者:

http://www.mapeditor.org/

Libgdx暗示:

https://www.google.ca/url?q=https://m.youtube.com/watch%3Fv%3Dqik60F5I6J4&sa=U&ved=0ahUKEwig5uCJjc_UAhULej4KHaWjD5UQtwIICzAA&sig2=p1BL_V0NB9LCsihcmq_4rg&usg=AFQjCNGIw8u4NIVWalv3Z1MJVTJzRiU04g

或者或许:

https://m.youtube.com/watch?v=zckxJn751Gw