在J2ME中,一次只能显示一个屏幕或一个画布。屏幕内部可以有多个对象(文本字段,窗体等),而画布只能容纳一个游戏画布。

问题是:一个画布中可以有多个游戏画布吗?
我正在尝试同时显示两个,一个在顶部,一个在底部。
我想重新粉刷底部画布而不重新粉刷顶部画布。

先感谢您!任何形式的帮助将不胜感激! :)

最佳答案

不可以,一次只能显示一个Canvas或GameCanvas对象。

但是:如果您要拥有2个Canvas对象,因为您需要彼此独立地更新屏幕的2个部分,则可以使用2个Image对象来实现。

只需使用Image.getGraphics()获得每个图像的Graphics对象即可;
然后,您可以在每个图像上绘制。
最后,在画布上绘制两个图像(如果只想更新屏幕的一部分,则仅绘制其中一个)。

使用GameCanvas的示例:

Image topImage = Image.createImage(width, height);
Image bottomImage = Image.createImage(width, height);
Graphics topG = topImage.getGraphics();
Graphics bottomG = bottomImage.getGraphics();
Graphics g = getGraphics(); // Get graphics of the GameCanvas

drawStuffOn-topG();
drawStuffOn-bottomG();

g.drawImage(topImage, 0, 0, g.TOP|g.LEFT);
g.drawImage(bottomImage, 0, halfScreenHeight, g.TOP|g.LEFT);

flushGraphics();

10-08 17:10