如果精灵的尺寸大于纹理,则为瓷砖纹理

时间:2016-07-06 16:48:01

标签: libgdx

我有一个精灵充当我正在构建的游戏中的墙。我想让砖纹理重复自己而不是拉伸以适应屏幕的高度。我试过了:

    Texture lSideTexture = new Texture(Gdx.files.internal("wall.png"));
    lSideTexture.setWrap(Texture.TextureWrap.Repeat, Texture.TextureWrap.Repeat);

    lSideSprite = new Sprite(lSideTexture);
    lSideSprite.setPosition(-50, -100 * (height/width) / 2);
    lSideSprite.setSize(5,100 * (height/width));

但是我仍然得到一个已经拉伸以适应尺寸而不是重复的纹理。

任何想法?

1 个答案:

答案 0 :(得分:0)

您还必须将Sprite的纹理区域更改为大于纹理。因此,如果您绘制的精灵比正常情况大5倍,那么您可以这样做:

lsideSprite.setRegion(0, 0, 5f, 5f);

这里的一个“问题”是这个方法被重载以获取所有的整数或所有浮点数。如果使用整数,则指定像素尺寸的大小。如果你使用浮点数,那么你要指定你想重复它的次数。