Opengl 如何在libgdx自定义组中使用本地坐标?
我正在创建一个自定义的libgdx组以显示卡图像。它包含这样的标签和图像 我的第一幅图像是一个纹理区域,它是组的实际大小。我现在需要使用局部坐标和西装名称标签将第二个图像添加到左上角。这是我正在使用的卡片Opengl 如何在libgdx自定义组中使用本地坐标?,opengl,libgdx,Opengl,Libgdx,我正在创建一个自定义的libgdx组以显示卡图像。它包含这样的标签和图像 我的第一幅图像是一个纹理区域,它是组的实际大小。我现在需要使用局部坐标和西装名称标签将第二个图像添加到左上角。这是我正在使用的卡片 public class Card extends Group { private Player player; private AtlasRegion cardImage; private Label lblCard; public Card() { super();
public class Card extends Group {
private Player player;
private AtlasRegion cardImage;
private Label lblCard;
public Card() {
super();
init();
}
@Override
public void draw(Batch batch, float alpha){
super.draw(batch, alpha);
batch.draw(cardImage, getX(), getY());
//lblName.draw()
lblCard.draw(batch, getOriginX() + 70..values I have used for this arent working so far);
}
@Override
public void act(float delta){
}
@Override
public void setSize(float width, float height) {
super.setSize(width, height);
}
private void init() {
cardImage = Assets.instance.cards.hearts;
// Add player name
lblName = new Label("H", Assets.instance.menu, "knul-medium", Color.BLACK);
}
}
我曾尝试使用
getX()
和getY()
值,但当我在表格中绘制组时,只有cardImage
适合表格,而标签都在屏幕上的一个点绘制。如何使用局部坐标绘制卡内的标签和其他纹理区域,并在我在另一个类中创建卡的新实例时以相同的图像显示?将getOriginX()
更改为getX()
。原点(与位置不同)用于旋转中心之类的对象,如果您没有更改它,则原点仅为0。无论如何,您并没有真正按照预期使用组,您可以使用子类Actor。组管理子对象,子对象的位置被视为相对于组,因此您只需分别在(0,0)和(70,y)处将卡片图像和标签添加到组中,而无需覆盖draw()
。