【问题标题】:Tile Texture If Dimensions of Sprite Are Larger Than Texture如果 Sprite 的尺寸大于纹理,则平铺纹理
【发布时间】:2016-07-07 01:46:47
【问题描述】:

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

    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));

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

有什么想法吗?

【问题讨论】:

    标签: libgdx


    【解决方案1】:

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

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

    这里的一个“陷阱”是此方法被重载以获取所有整数或所有浮点数。如果使用整数,则以像素尺寸指定大小。如果你使用浮点数,那么你就是在指定你希望它重复多少次。

    【讨论】:

    • 我如何知道我绘制的精灵大了多少倍?谢谢
    • 不确定我是否理解这个问题。您是设计游戏的人……您可以将其绘制成您想要的大小,并将区域设置为任何大小,从而获得您想要的比例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多