我在理解如何在容器中绘制多个图像以及如何在组件上绘制动画时遇到问题。 首先,我想在组件背景上绘制两个图像。这是代码:
public class CountryInteriorContainer扩展了Component {
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中创建动画。
答案 0 :(得分:1)
我建议您覆盖paint()
或paintComponent()
,而不是深入了解画家的复杂性。在尝试构建动画效果时,这一点更为重要。
查看LWUIT演示和Codename One演示中的动画,您可以在没有太多代码的情况下重现该动画风格。