【发布时间】:2017-07-01 20:14:00
【问题描述】:
我正在为一个游戏工作,并进入了这一点:我想在一个精灵中拥有 2 个纹理,这可能吗?
我的意思是:我需要将一个设置在特定角度,而另一个要连续旋转。我一直在互联网上寻找,但没有发现任何相关信息。
或者..有更好的方法吗?
【问题讨论】:
我正在为一个游戏工作,并进入了这一点:我想在一个精灵中拥有 2 个纹理,这可能吗?
我的意思是:我需要将一个设置在特定角度,而另一个要连续旋转。我一直在互联网上寻找,但没有发现任何相关信息。
或者..有更好的方法吗?
【问题讨论】:
Sprite 继承自 TextureRegion。
这是TextureRegion的定义:
定义纹理的矩形区域。
所以Sprite 真的只是一个纹理,这意味着你只能将一个 Sprite 转换为一个整体。
如果你想将多个 Sprite 包装到一个类中,我建议使用Scene2D。您可以在Actor.draw() 中绘制两个精灵:
public void draw() {
sprite1.draw();
sprite1.rotate(…);
…
sprite2.draw();
…
}
然后将演员添加到Stage
stage.addActor(actor);
【讨论】:
Sprite 是一个 TextureRegion,它保存几何、颜色和其他用于绘制的纹理信息,因此您不能在 Sprite 中保留多个纹理并全部用于绘制。
因此,如果您不使用 scene2d,请使用 1st,否则请使用 2nd 或 3rd 选项。
创建自己的包含两个textureRegion的类,并根据您的要求自行绘制。
创建一个Group 作为图像的父级。创建不同的Image,添加特定的Action、Color等属性,然后添加到父组。
通过继承 Image 类创建一个 CompositeImage 并添加一个新的 TextureRegion 作为新类的属性。覆盖draw (Batch batch, float parentAlpha) 方法并绘制您添加的纹理区域。
【讨论】: