我有一个小的纹理可以平铺游戏背景。所以我想一张一张地绘制纹理。我应该怎么用libgdx opengl es。

最佳答案

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

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较大,则图像将彼此相邻平铺。

关于java - 一种纹理渲染多次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27813396/

10-11 02:44