1. 程式人生 > >紅孩兒編輯器的模組設計5

紅孩兒編輯器的模組設計5

紅孩兒編輯器的模組設計5

5.1 矩陣轉換模組的設計

16*16點陣 轉換成 32*32點陣的邏輯

這就是說把一個點放大成四個點,如果這四點都顯示的話,字型形狀是相似的。
現在需要讓它從粗體變成瘦體一點的。

這四個點的位置如下
1  2
3  4

如果這個點的右方有一個緊相鄰的點,這四個點中顯示1和2點
如果這個點的右下方有一個緊相鄰的點,這四個點中顯示 1和4 點
如果這個點的下方有一個緊相鄰的點,這四個點中顯示1和3點。
如果這個點的左下方有一個緊相鄰的點,這四個點中顯示2和3點。 

5.2 游標定位的模組的設計
游標在箭頭鍵的控制下,可以向上,向下,向左,向右移動,初看沒有什麼特殊之處。
仔細一想,有不少的邊界的條件需要明確設計好。例如如何判斷超過了螢幕上的顯示區域的邊界了。
在超過了邊界的情況下,程式如何應對。

在螢幕的寬度為650個畫素時,一個字的寬度為32個畫素時,650/32 等於 20個字,剩餘10個畫素,
也就是說,當游標顯示在640畫素的位置時,我們認為游標達到了邊界,也就是本行的行尾了。
游標在第0個畫素的位置時,我們認為游標在左邊界了。

在刪除鍵的使用使得游標到達了左邊界後,再執行向左移動的情況下,游標跳到上一行的右邊界處。
在左上角的頂點處時,如果是檔案的開頭處,對向左移動游標的操作無響應。如果不是檔案的開頭處
螢幕向上滾動一行,游標再顯示在第一行的右邊界處。

在空格鍵等能夠讓游標向右移動操作,使得游標到達了右邊界後,再向右移動時,游標跳到下一行的左邊界處。
游標在右下角的頂點處時,如果是檔案的結尾處,對向右移動的游標的操作無響應。如果不是檔案的結尾處,
螢幕向下滾動一行,游標再顯示在最下面的一行的左邊界處。