1

J2ME では、一度に表示できるのは画面またはキャンバスだけです。画面には複数のオブジェクト (テキストフィールド、フォームなど) を含めることができますが、キャンバスにはゲームキャンバスしか保持できません。

問題は、1 つのキャンバスに複数のゲーム キャンバスを含めることは可能かということです。上部と下部に 1 つずつ、同時に 2 つを表示しようとしています。 上部を再描画せずに、下部のキャンバスを再描画したいと思います。

前もって感謝します!どんな形の助けも大歓迎です!:)

4

2 に答える 2

2

一度に表示できる Canvas または GameCanvas オブジェクトは 1 つだけです。

ただし: 2 つの Canvas オブジェクトが必要な場合は、画面の 2 つの部分を互いに独立して更新する必要があるため、2 つの Image オブジェクトを使用してそれを行うことができます。

Image.getGraphics(); を使用して、各 Image の Graphics オブジェクトを取得するだけです。次に、各画像に描画できます。最後に、両方の画像をキャンバスに描画します (画面の一部だけを更新する場合は、そのうちの 1 つだけを描画します)。

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();
于 2013-10-11T20:38:28.620 に答える
1

いいえ、キャンバスを 1 つだけ使用しますが、変更されたビットのみを再描画します。

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

于 2013-10-11T13:49:09.553 に答える