java - Libgdx gl10.glLineWidth()

标签 java libgdx

我有这一行: Gdx.gl10.glLineWidth(宽度); 现在,我打算画一条很粗的线,不幸的是,当我输入 1 或 5 等小值时,线显然很小。但是一旦我超过 10 之类的东西,它就不再变大了。在这些情况下,我传递的是直接值,因此,我的印象是 GL 有限制或类似的东西……我是对的吗?这是我的代码:

Gdx.gl.glClearColor(0,0,0,1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    batch.setProjectionMatrix(cam.combined);
    batch.begin();
    batch.draw(bg,0,0,WIDTH,HEIGHT);
    for(Spell a : spells){
        a.draw(batch);
    }
    lc.draw(batch);
    batch.end();
    //((ppux+ppuy)/2f)*4
    Gdx.gl10.glLineWidth(50);//average and then say 1/4 a unit)
    renderer.setProjectionMatrix(cam.combined);
    renderer.begin(ShapeType.Line);
    lp.drawLines(renderer);
    renderer.end();
    batch.begin();
    lp.draw(batch);
    batch.end();

lp.drawLines(renderer) 调用以下(我只是调用设置颜色,然后画线):

renderer.setColor(1,1,1,1);
    Elem a = elems.get(spellcombo.get(0));
    Vector2 last = new Vector2(a.x(),a.y());
    for(int i = 1; i < spellcombo.size(); i++){
        a = elems.get(spellcombo.get(i));
        Vector2 cur = new Vector2(a.x(),a.y());
        renderer.line(last.x, last.y, cur.x, cur.y);
        last = cur;
    }
    renderer.line(last.x,last.y,mx,my);
    Gdx.gl.glEnable(GL10.GL_BLEND);
    Gdx.gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
    renderer.setColor(1, 0, 0, .2f);
    for(Elem e : elems){
        int id = elems.indexOf(e);
        if(ComboManager.validSpell(spellcombo,id))
            renderer.line(last.x,last.y,e.x(),e.y());
    }

截图:
glLineWidth() 设置为 1 的图像 Image with glLineWidth() set to 1 glLineWidth() 设置为 5 的图像 Image with glLineWidth() set to 5 glLineWidth() 设置为 10 的图像 Image with glLineWidth() set to 10 glLineWidth() 设置为 20 的图像 Image with glLineWidth() set to 20 glLineWidth() 设置为 200 的图像 Image with glLineWidth() set to 200

我真的不知道如何解决,谷歌也不是特别有用。 谢谢!

最佳答案

从 libgdx 1.0 开始,还有 ShapeRenderer's rectLine method可用的。看一个简单的例子。

ShapeRenderer shapeRenderer = new ShapeRenderer();
shapeRenderer.begin(ShapeType.Filled);
shapeRenderer.rectLine(x1, y1, x2, y2, width);
shapeRenderer.end();

这似乎是现在绘制粗线最简单的方法。

关于java - Libgdx gl10.glLineWidth(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16680908/

相关文章:

java - libgdx touchup 和 touchdragged 没有被调用,但是 touchdown 是

java - 在 @ModelAttribute 注释方法中返回 Spring 模型

java - 为什么String.equals里面有一个 "=="?

java - 用于获取 Java 进程的线程转储的 Shell 脚本

java - 读取 Json 文件时出现 libGDX And​​roid SerializationException

java - 如何将 SQLite 与 libgdx 结合使用

java - 项目移动后 Gradle 依赖库为空

java - 如何在不抬起手指的情况下更改我按下的按钮? (在 LibGDX 中)

java - 你知道像 Swing 组件这样复杂的电子表格吗

java - 无法让旋转进度条工作