2013-10-11 158 views
1

在J2ME中,一次只能顯示一個畫面或畫布。屏幕可以有多個對象(文本框,表單等),而一個畫布只能容納一個gamecanvas。J2ME遊戲畫布

問題是:在一個畫布中是否可以有多個遊戲畫布? 我試圖同時顯示兩個,一個在頂部,一個在底部。 我想重繪底部畫布而不重新繪製頂部。

預先感謝您!任何形式的幫助將不勝感激! :)

+0

我想,是的,你可以做到這一點。看看這個簡短的教程,該教程展示瞭如何在J2ME中執行屏幕過渡(在此過程中,兩個畫布同時瞬間出現)。您應該可以使用相同的技術將兩個畫布永久顯示在一起。 http://www.jappit.com/blog/2008/06/23/how-to-add-sliding-transitions-between-canvas-in-j2me/ –

回答

2

不行,你只能一次顯示一個帆布或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();