java - 在 Libgdx 中绘制渐变

标签 java android eclipse 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();
}

它会在屏幕上绘制浅蓝色背景。我正在尝试创建一个渐变,从顶部的深蓝色到底部的浅蓝色。有没有一种简单的方法可以做到这一点?我是 Libgdx 和 OpenGL 的新手,所以我想从一本书中学习,但我似乎找不到这个问题的答案。我听说过绘制一个大正方形并让顶点具有不同的颜色,但我不确定如何做到这一点。

最佳答案

在 libGDX 中,ShapeRenderer 对象包含一个 drawRect() 方法,该方法接受其位置和大小以及四种颜色的参数。这些颜色将转换为 4 角渐变。如果您想要垂直渐变,只需将顶角设为一种颜色,将底角设为另一种颜色。像这样的:

shapeRenderer.filledRect(x, y, width, height, lightBlue, lightBlue, darkBlue, darkBlue);

来自 ShapeRenderer 的 API:

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.

关于java - 在 Libgdx 中绘制渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20889316/

相关文章:

java - 无法将模型对象添加到 "/"中的 jsp View ,但相同的方法正在调用/index

java - 使用线程概念java在多个设备中并行执行

android - 获取 Google API 的 MD5 签名

android - 下载谷歌 API

java - 具有数百万个节点的有向图,大多数只有几条边,但少数有数十万个

java - 如何指定 java 包的路径?

java - Android ART 崩溃试图抛出 ArrayOutOfBoundsException

java - 我想从以下 HashMap 中获取常见时间集的工作日

python - 在 win7 上的 eclipse 中创建一个 django 项目?

android - 如何加快 Android 5.0(Lollipop) 模拟器的加载时间?