Jon*_*ale 17 java eclipse android opengl-es-2.0 libgdx
好的,我有这个代码
@Override
public void render() {
// do not update game world when paused
if (!paused) {
// Update game world by the time that has passed
// since last render frame
worldController.update(Gdx.graphics.getDeltaTime());
}
// Sets the clear screen color to: Cornflower Blue
Gdx.gl.glClearColor(0x64/255.0f, 0x95/255.0f, 0xed/255.0f,
0xff/255.0f);
// Clears the screen
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
// Render game world to screen
worldRenderer.render();
}
Run Code Online (Sandbox Code Playgroud)
它在屏幕上绘制浅蓝色背景.我试图创建一个从顶部的深蓝色到底部的浅蓝色的渐变.有一个简单的方法吗?我是Libgdx和OpenGL的新手,所以我试图从一本书中学习,但我似乎找不到这个答案.我听说过绘制一个大的正方形并且顶点有不同的颜色,但我不确定如何做到这一点.
Kev*_*man 26
在libGDX中,ShapeRenderer对象包含一个drawRect()方法,该方法为其位置和大小以及四种颜色获取参数.这些颜色转换为4角渐变.如果你想要一个垂直渐变,只需使顶角为一种颜色,底角为另一种颜色.像这样的东西:
shapeRenderer.filledRect(x, y, width, height, lightBlue, lightBlue, darkBlue, darkBlue);
Run Code Online (Sandbox Code Playgroud)
从ShapeRenderer的API:
4个颜色参数指定矩形的左下角,右下角,右上角和左上角的颜色,允许您创建渐变.
Fra*_*zoa 12
似乎在后期libGDX版本中删除了ShapeRenderer.filledRect方法.现在这样做的方法如下:
shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
shapeRenderer.rect(
x,
y,
width,
height,
Color.DARK_GRAY,
Color.DARK_GRAY,
Color.LIGHT_GRAY,
Color.LIGHT_GRAY
);
Run Code Online (Sandbox Code Playgroud)
rect方法的参数工作方式与fillRect中的参数相同,就像Kevin Workman的回答一样.