在 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();
}
它会在屏幕上绘制浅蓝色背景.我正在尝试创建一个渐变,从顶部的深蓝色到底部的浅蓝色.有没有一种简单的方法可以做到这一点?我是 Libgdx 和 OpenGL 的新手,所以我想从一本书中学习,但我似乎找不到这个问题的答案.我听说过绘制一个大正方形并让顶点具有不同的颜色,但我不确定如何做到这一点.
And it draws a light blue background onto the screen. I am attempting to create a gradient that goes from a dark blue at the top, to a light blue towards the bottom. Is there a simple way to do this? I'm new to Libgdx, and OpenGL so i'm trying to learn from a book but I can't seem to find the answer to this one. I've heard of drawing a big square and having the vertices different colors, but I'm unsure of how to do this.
推荐答案
在 libGDX 中,ShapeRenderer 对象包含一个 drawRect()
方法,该方法接受其位置和大小以及四种颜色的参数.这些颜色将转换为 4 角渐变.如果您想要垂直渐变,只需将顶角设为一种颜色,将底角设为另一种颜色.像这样的:
In libGDX, the ShapeRenderer object contains a drawRect()
method that takes arguments for its position and size as well as four colors. Those colors are converted to a 4-corners gradient. If you want a vertical gradient, just make the top corners one color and the bottom corners another color. Something like this:
shapeRenderer.filledRect(x, y, width, height, lightBlue, lightBlue, darkBlue, darkBlue);
来自 ShapeRenderer 的 API:
From the API for ShapeRenderer:
4个颜色参数指定矩形左下角、右下角、右上角和左上角的颜色,让您可以创建渐变.
The 4 color parameters specify the color for the bottom left, bottom right, top right and top left corner of the rectangle, allowing you to create gradients.
相关文章