libGDX 纹理 2d 地形

标签 libgdx textures box2d terrain

我在使用 libgdx 和 box2d 进行卡车游戏。
在我的游戏中 1 米 = 100 像素。
我的 2d 地形是由我生成的,由点组成。

enter image description here

我所做的是为整个多边形制作了一个多边形区域并使用了texturewrap.repeat。
问题是,我的游戏尺寸缩小了 100 倍,以适应 box2d 单位。

所以我的相机宽度是 800/100,高度是 480/100。(8x4.8 像素)

我如何创建我的多边形区域

box = new Texture(Gdx.files.internal("box.png"));
    box.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    box.setWrap(TextureWrap.Repeat, TextureWrap.Repeat);

    TextureRegion region = new TextureRegion(box);

    psb = new PolygonSpriteBatch();

    float[] vertices = new float[paul.size];
    for (int i = 0; i < paul.size; i++) {
        vertices[i] = paul.get(i);
        if (i % 2 == 1)
            vertices[i] += 1f;

    }

    EarClippingTriangulator a = new EarClippingTriangulator();
    ShortArray sar = a.computeTriangles(vertices);
    short[] shortarray = new short[sar.size];
    for (int i = 0; i < sar.size; i++)
        shortarray[i] = sar.get(i);
    PolygonRegion pr = new PolygonRegion(region, vertices, shortarray);

    System.out.println(vertices.length + " " + shortarray.length);

    ps = new PolygonSprite(pr);

现在我将多边形 Sprite 绘制到我的多边形 Sprite 批处理中。
这将重复渲染多边形上的纹理,但图片会大 100 倍并且非常拉伸(stretch)。
左边的例子是我想做的,右边的例子是我的游戏的样子..

enter image description here

最佳答案

此 PR 已合并,看起来像您想要的那样:
https://github.com/libgdx/libgdx/pull/3799

请参阅可重复多边形 Sprite 。

关于libGDX 纹理 2d 地形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23445444/

相关文章:

java - Libgdx 桌面启动器空白

java - libgdx : some questions for beginner

libgdx - 桌面上的 TextureAtlas 问题,从 Eclipse 导出

java - Android 中不显示 BitmapFont 特殊字符,但在桌面版中可以使用

java - openGL/JOGL : Why do some Textures render "Smoothed" and some not?

python - 没有 CNN 的重复模式的图像语义分割

c++ - Qt 和 OpenGL : texture transparency

c++ - Cocos2dx : Deleting kinematic bodies once they are off screen

c# - 是否可以在没有 World 对象的情况下存储 Box2D/Farseer Body 对象?

C++ Visual Studio 2012 让 Box2D 和 SFML 协同工作