【问题标题】:Libgdx multiple textures in one spriteLibgdx 一个精灵中的多个纹理
【发布时间】:2017-07-01 20:14:00
【问题描述】:

我正在为一个游戏工作,并进入了这一点:我想在一个精灵中拥有 2 个纹理,这可能吗?

我的意思是:我需要将一个设置在特定角度,而另一个要连续旋转。我一直在互联网上寻找,但没有发现任何相关信息。

或者..有更好的方法吗?

【问题讨论】:

    标签: java libgdx


    【解决方案1】:

    Sprite 继承自 TextureRegion。 这是TextureRegion的定义:

    定义纹理的矩形区域。

    所以Sprite 真的只是一个纹理,这意味着你只能将一个 Sprite 转换为一个整体。

    如果你想将多个 Sprite 包装到一个类中,我建议使用Scene2D。您可以在Actor.draw() 中绘制两个精灵:

    public void draw() {
        sprite1.draw();
        sprite1.rotate(…);
        …
        sprite2.draw();
        …
    }
    

    然后将演员添加到Stage

    stage.addActor(actor);
    

    【讨论】:

      【解决方案2】:

      Sprite 是一个 TextureRegion,它保存几何、颜色和其他用于绘制的纹理信息,因此您不能在 Sprite 中保留多个纹理并全部用于绘制。

      因此,如果您不使用 scene2d,请使用 1st,否则请使用 2nd 或 3rd 选项。

      1. 创建自己的包含两个textureRegion的类,并根据您的要求自行绘制。

      2. 创建一个Group 作为图像的父级。创建不同的Image,添加特定的ActionColor等属性,然后添加到父组。

      3. 通过继承 Image 类创建一个 CompositeImage 并添加一个新的 TextureRegion 作为新类的属性。覆盖draw (Batch batch, float parentAlpha) 方法并绘制您添加的纹理区域。

      【讨论】:

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