【问题标题】:J2ME Game CanvasJ2ME 游戏画布
【发布时间】:2013-11-23 03:50:52
【问题描述】:

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

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

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

【问题讨论】:

  • 我想,是的,你可以做到这一点。看看这个简短的教程,它展示了如何在 J2ME 中执行屏幕转换(在此期间,两个画布会同时同时出现)。您应该能够使用相同的技术将两个画布永久显示在一起。 jappit.com/blog/2008/06/23/…

标签: java canvas java-me


【解决方案1】:

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

但是:如果您询问是否拥有 2 个 Canvas 对象,因为您需要更新屏幕的 2 个彼此独立的部分,您可以使用 2 个 Image 对象来做到这一点。

只需使用 Image.getGraphics(); 获取每个 Image 的 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();

【讨论】:

    【解决方案2】:

    不,您只使用一个画布,但只重绘使用

    更改的位

    Canvas.repaint(int x, int y, int w, int h);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-02
      • 2015-09-30
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2013-06-08
      相关资源
      最近更新 更多