1

我无法理解如何在容器中绘制多个图像,以及如何在组件上绘制动画。首先,我想在组件背景上绘制例如两个图像。这是代码:

公共类 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 中戏剧性地创建动画。

4

1 回答 1

1

我建议你只是覆盖paint()paintComponent()而不是进入画家的复杂性。在尝试构建动画效果时,这一点更为重要。

查看 LWUIT 演示和Codename One演示中的动画,您无需太多代码即可重现该风格的动画。

于 2012-08-15T15:54:04.953 回答