红孩儿编辑器的模块设计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个像素的位置时,我们认为光标在左边界了。

在删除键的使用使得光标到达了左边界后,再执行向左移动的情况下,光标跳到上一行的右边界处。
在左上角的顶点处时,如果是文件的开头处,对向左移动光标的操作无响应。如果不是文件的开头处
屏幕向上滚动一行,光标再显示在第一行的右边界处。

在空格键等能够让光标向右移动操作,使得光标到达了右边界后,再向右移动时,光标跳到下一行的左边界处。
光标在右下角的顶点处时,如果是文件的结尾处,对向右移动的光标的操作无响应。如果不是文件的结尾处,
屏幕向下滚动一行,光标再显示在最下面的一行的左边界处。

猜你喜欢

转载自blog.csdn.net/gggwfn1982/article/details/84074875