JAVAME學習筆記(4)

要創建一個新的GameCanvas實例,只能通過繼承並調用父類的構造函數:

protected GameCanvas(boolean suppressKeyEvents),

這將使爲GameCanvas準備的一個新的緩衝區也被創建並在初始化時被填充爲白色。



爲了在GameCanvas上繪圖,首先要獲得Graphics對象來渲染GameCanvas:

protected Graphics getGraphics()

返回的Graphics對象將用於渲染屬於這個GameCanvas的後備屏幕緩衝區(off-screen buffer)。 但是渲染結果不會立刻顯示出來,直到調用flushGraphics()方法;輸出緩衝區的內容也不會改變緩衝區的內容,即輸出操作不會清除緩衝區的像素。



每次調用這個方法時,都會創建一個新的Graphics對象;對於每個GameCanvas實例,獲得的多個Graphics對象都將渲染同一個後備屏幕緩衝區。因此,有必要在遊戲啓動前獲得並存儲Graphics對象,以便遊戲運行時能反覆使用。



剛創建的Graphics對象有以下屬性:

l 渲染目標是這個GameCanvas的緩衝區;
2 渲染區域覆蓋整個緩衝區;

3 當前顏色是黑色(black);

4 字體和調用Font.getDefaultFont()返回的相同;

5 繪圖模式爲SOLID;

6 座標系統的原點定位在緩衝區的左上角。



在完成了繪圖操作後,可以使用flushGraphics()方法將後備屏幕緩衝區的內容輸出到顯示屏上。輸出區域的大小與GameCanvas的大小相同。輸出操作不會改變後備屏幕緩衝區的內容。這個方法會直到輸出操作完成後才返回,因此,當這個方法返回時,應用程序可以立刻對緩衝區進行下一幀的渲染。



如果GameCanvas當前沒有被顯示,或者系統忙而不能執行輸出請求,這個方法不做任何事就立刻返回。
發佈了26 篇原創文章 · 獲贊 13 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章