根據上節目標 j2me中的graphcis類函式是直接操作screen,是節中演算法慢的主要原因。為了提高的它的效率,最好的做法就是只需要一次就可以完成全部漢字的繪製。這樣就即可以將函式的量級從o(n)降到o(1),同時可以是平均繪製時間降低下來。現在問題的關鍵來了,我們如何才能將漢字一次性的繪製出來???
既然設計到一次性繪製問題,中間肯定少不了先將其繪製到快取image物件中。然後再將其直接繪製到螢幕即可!
現在的問題就是如何在這個快取區中繪製這些漢字??難道我們還是其快取的image物件的graphcis畫筆,g.draw*** 將其繪製上去嗎??? 要是這樣的話我們不就是又回到「原點」??? 這裡是決定不能g.draw***方法,將漢字一筆一劃的繪製上去!!!
現在我們真的需要換乙個思路!!!
我現在換一種問法, 我們真的沒有辦法將我們的漢字字形直接對映到image物件上嗎??
我們還是先看看j2me的關於graphics 類的api文件!! 在其中我找到這個函式!!
我們可以現將字形對映到陣列嗎??最後呼叫這個函式繪製出來嗎??
當然可以,**如下!!
上述**我重寫了**! 測試截圖void drawfont(graphics g)
void drawmat(char mat, graphics g, int matsize, int x, int y, int color)
/* 依次:字模指標、點陣大小、起始座標(x,y)、顏色 */
else
curadd++;}}
} drawfontshape(g, rgb, 0, matsize, x, y, matsize, matsize);
} void drawfontshape(graphics g, int rgbdata, int offset, int scanlength,
int x, int y, int width, int height)
調成120個字測試結果
基本上是o(1)量級!!
點陣字型檔在J2ME中的實現
點陣字型檔在j2me中的實現 關於點陣字型檔在j2me的實現。最近在學習c的過程中無意發現了點陣字型檔的東西。整理了下,在j2me實現了下相關的演算法。下面是dos的一段話 對於使用少量的漢字圖形程式,完全沒有必要帶巨大的漢字型檔來執行,只要記憶體允許,你可以把漢字字模直接定義為陣列的資訊儲存在ex...
j2me遊戲引擎程式結構
2004 11 17 唐良遊戲引擎的結構很多,不過基本上都是在乙個遊戲主迴圈內實現。程式裡面的主迴圈包含了程式框架的最主要的結構體。j2me 的程式一般都包含兩個 class 檔案,乙個是 midlet,乙個是displayable 一般我都是把遊戲的主要 放在 displayable 這個類裡面。...
J2ME遊戲引擎程式結構
遊戲引擎的結構很多,不過基本上都是在乙個遊戲主迴圈內實現。程式裡面的主迴圈包含了程式框架的最主要的結構體。j2me 的程式一般都包含兩個 class 檔案,乙個是 midlet,乙個是displayable 一般我都是把遊戲的主要 放在 displayable 這個類裡面。這個類是基於事件驅動的程式...