我有这条线: Gdx.gl10.glLineWidth(width); 现在,我确实打算画一条很粗的线,不幸的是,当我输入像 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) 调用以下内容(我只是调用 set color 和 draw line):
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
的图像 glLineWidth() 设置为 5
的图像 glLineWidth() 设置为 10
的图像 glLineWidth() 设置为 20
的图像 glLineWidth() 设置为 200 的图像
我真的不知道如何解决,谷歌也不是特别有帮助。谢谢!