2012-08-14 17 views
1

我在理解如何在容器中繪製多個圖像以及如何在組件上繪製動畫時遇到問題。 首先,我想在組件背景上繪製兩個圖像。這裏是代碼:在LWuiT組件上繪製動畫和圖像

公共類CountryInteriorContainer擴展組件{

private PainterChain backgroundPainterChain; 

public CountryInteriorContainer() { 
    super(); 

    backgroundPainterChain = new BackgroundPainterChain(new GroundPainter("CountryBackgroundLand")); 
    backgroundPainterChain.addPainter(new CastlePainter("CastleBrown")); 

    getStyle().setBgPainter(backgroundPainterChain); 
} 

}

這裏我真的創造繪畫隊列。但是容器上只有一個第一個圖像。

公共類CastlePainter從高速緩存或資源擴展BasePainter {

public CastlePainter(String imageId) { 
    super(imageId); 
} 

public CastlePainter(Image image) { 
    super(image); 
} 

public void paint(Graphics g, Rectangle rect) { 
    g.drawImage(getImage(), rect.getX() + 40, rect.getY()); 
} 

}

BasePainter只是初始化圖像。

請幫我看看爲什麼只有第一位畫家工作正常。還有如何在LWuiT中創建動畫。

回答

1

我建議你只是覆蓋paint()paintComponent()而不是進入畫家的複雜性。嘗試構建動畫效果時,這一點更爲重要。

查看LWUIT演示和Codename One演示中的動畫,您可以在沒有太多代碼的情況下重現該動畫風格。