我试图让几张图片在屏幕上反弹,但只显示ArrayList
中的最后一张图片。
for(Letter l : Letters) {
clearAndDraw(gameMenuGraphicsContext, gc ->
gc.drawImage(
l.letterImage,
l.letterRectangle.getX(),
l.letterRectangle.getY()
)
);
gameMenuGraphicsContext.drawImage(
l.letterImage,
l.letterRectangle.getX(),
l.letterRectangle.getY()
);
l.move();
}
private void clearAndDraw(GraphicsContext gc, Consumer<GraphicsContext> draw) {
gc.clearRect(0, 0, gc.getCanvas().getWidth(), gc.getCanvas().getHeight());
draw.accept(gc);
}
如果我删除了clearAndDraw
代码行,则会出现两个矩形但会弄脏屏幕。
有没有解决这个问题的方法?
答案 0 :(得分:4)
移动此行:
gc.clearRect(0, 0, gc.getCanvas().getWidth(), gc.getCanvas().getHeight());
在for
循环之前。然后它会在绘制所有矩形之前清除屏幕。