J2me 遊戲點陣字型檔引擎(三)之字型繪製改進演算法

2021-09-01 04:30:20 字數 1013 閱讀 4838

根據上節目標  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 這個類裡面。這個類是基於事件驅動的程式...