J2ME では、一度に表示できるのは画面またはキャンバスだけです。画面には複数のオブジェクト (テキストフィールド、フォームなど) を含めることができますが、キャンバスにはゲームキャンバスしか保持できません。
問題は、1 つのキャンバスに複数のゲーム キャンバスを含めることは可能かということです。上部と下部に 1 つずつ、同時に 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();
いいえ、キャンバスを 1 つだけ使用しますが、変更されたビットのみを再描画します。