【问题标题】:Libgdx how to make rectangle texture either go to background or foreground...set layers?Libgdx如何使矩形纹理进入背景或前景......设置图层?
【发布时间】:2014-09-01 03:50:42
【问题描述】:

我正在尝试弄清楚如何使矩形纹理显示在另一张图像的后面或前面。在这种特殊情况下,它是矩形后面的数组矩形。

还试图弄清楚如何在所有其他纹理前面保留“你的分数是多少”字符串。

有没有办法在 libgdx 中指定纹理层顺序?我尝试更改它们的创建和渲染顺序,但无济于事。也找不到任何信息,所以也许它只是被称为别的东西。

【问题讨论】:

标签: java android libgdx


【解决方案1】:

你只需要先绘制背景纹理,然后是前景,然后是分数:

(半伪代码,因为我有一段时间没有做过libgdx)

 public void update(float _delta)
 {
     spritebatch.begin();
     drawbackgrounds();
     drawforegrounds();
     drawoverlay();
     spritebatch.end();
 }

 private void drawbackgrounds()
 {
     //draw your background textures here
 }

 private void drawforegrounds()
 {
     //draw your foreground textures here
 }

 private void drawbackgrounds()
 {
     //draw your overlay here
 }

【讨论】:

    【解决方案2】:

    您使用的是 Scene2D 吗?如果是这样,您可以使用actor#toFrontactor#toBack

    如果您使用 Batch 和 ShapeRenderer 进行渲染,那么您渲染它们的顺序就是它们在屏幕上的绘制优先级。

    所以如果你先渲染一个矩形,然后再渲染分数标签;将显示标签。

    但是,如果您先渲染标签,然后再渲染矩形;矩形将优先绘制在标签之上。

    如果您使用 OpenGL 函数来创建这些显示,那么我假设渲染顺序规则仍然适用。

    【讨论】:

      【解决方案3】:
          batch.begin();
          ......something draw here as background
          batch.end();
      
          //stage start
          stage.act(Gdx.graphics.getDeltaTime());
          stage.draw();
      
          batch_front.begin();
          ......something draw here as foreground
          batch_front.end();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多