2017-07-02 67 views
0

我需要在ShopCell中着色(最初应该是黑色的,购买后它会变得正常)。我可以在一名演员中色调纹理吗?

public class ShopCell extends Group { 
private final float WIDTH = 100; 
private final float HEIGHT = 150; 
private Label label; 

public ShopCell(TextureRegion itemTxt, int price) { 
    this.setSize(WIDTH, HEIGHT); 
    Image cellBg = new Image(Resource.cellBg); 
    cellBg.setSize(WIDTH, HEIGHT); 
    Image item = new Image(itemTxt); 
    float aspectRatio = item.getWidth()/item.getHeight(); 
    item.setBounds(cellBg.getX() + WIDTH/2-(HEIGHT*0.3f*aspectRatio), cellBg.getY() + HEIGHT/3, HEIGHT*0.6f*aspectRatio, HEIGHT*0.6f); 
    label = new Label(String.valueOf(price), new Label.LabelStyle(Resource.font, Color.YELLOW)); 
    label.setPosition(cellBg.getX() + WIDTH/2 - label.getWidth()/2, cellBg.getY() + HEIGHT/15); 
    this.addActor(cellBg); 
    this.addActor(item); 
    this.addActor(label); 
} 

我试图让Sprite首先,色调像这一点,并把它添加到Image

Sprite sprite = new Sprite(itemTxt); 
sprite.setColor(Color.BLACK); 
Image item = new Image(sprite); 

但是,当我这样做,我的质地不着色。 我该如何着色并将其添加到Group?那么我可以恢复其正常出现(对于购买的物品)吗?

回答

0

Sprite类有自己的颜色,所以可以是色调,但是当你从Sprite创建Image,只有TextureRegion Sprite用于构建新的Image对象。图片代替有色雪碧

套装颜色:

Image item = new Image(itemTxt); 
item.setColor(Color.BLACK); 

您也可以尝试在对象上淡入/输出操作

image.addAction(Actions.fadeOut(2)); 
相关问题