一个纹理渲染很多次

时间:2015-01-07 06:08:31

标签: java opengl-es libgdx shader

我有一个小的纹理来平铺我的游戏背景。所以我想逐个绘制纹理。我应该怎么做libgdx opengl es。

1 个答案:

答案 0 :(得分:1)

您可以将纹理设置为仅通过以下方式重复:

Texture tilingTexture;
tilingTexture = new Texture("tiling_texture.png");
tilingTexture.setWrap(TextureWrap.Repeat, TextureWrap.Repeat);

//And draw it:

batch.draw(tilingTexture, 
xCoordWhereImageMustBeDisplayed, yCoordWhereImageMustBeDisplayed, 
xCoordOnImageItself, yCoordOnImageItself, 
widthOfImageToDisplay, heightOfImageToDisplay);

所以基本上如果你想无限滚动它,你只需增加图像本身的坐标。

    xIncrement += 10;

    batch.begin();
    batch.draw(tilingTexture, 0, 0, xIncrement,0, Gdx.graphics.getWidh, Gdx.graphics.getHeight);
    batch.end();

如果xIncrement大于它刚刚环绕的图像的总宽度。当然,如果超过图像宽度,您可以自己将xIncrement重置为0。但是使用这种包装方法,如果hightOfImageToDisplay比图像更大,那么它将只是彼此相邻的图像。