返回目录
关灯 护眼
加入书架

分节阅读 47(2 / 2)

在母亲在打电话的时候,他回到了自己的房间,继续捧着红皮书看了起来。

他现在正在看显示器的固件部分。

这个时期的显示器,其实就是电视机显像管,基本的原理就是通过加速电子,使其轰击在荧光屏上产生亮点,从而达到显示文字或者图像的效果。

显像管就相当于是一个黑匣子,六个方向都有磁场,电子在磁场的作用下会进行加速或者偏移。例如,想在显示器上显示一条横线,则可以从阴极发送连续不断的电子束,刚开始的时候指向荧光屏的最左边,然后加上一个左右方向的磁场,“拉着”电子束从左向右运动。这个过程,就好像是有一个人端着一把机关枪,从最左边扫射到右边,最终在枪靶荧光显示屏上轰击出了一道弹痕。

要想控制电子形成指定的文字和图案,这是一个非常精密的操作,手动肯定是无法完成的,神枪手都无法用机关枪在墙上工整地写出简单的汉字,更别说画复杂的图形了。

于是工程师们便将这些操作封装成一个个简单的指令,将整个显示器当成一个黑匣子,只要对黑匣子说“画横线”,那么黑匣子就会自动在显示屏上显示出一条横线,至于其中到底是如何实现的,使用者根本不用关心这些细节。

这个黑匣子就是固件。出厂的时候,厂家会给出一本厚厚的固件技术手册,手册中,详细介绍了显示器中所能支持的指令,点和线的画法是最基本的,有的甚至还有画各种各样的基本几何图形。当然,有的硬件工程师甚至会偷偷在里面埋下一个彩蛋,例如某条特定的指令可以自己在显示器上显示出他的名字。

之前林鸿虽然懂得维修电视机,却不知道为什么电视机能显示如此复杂的图案,看完这个章节之后终于有了一个比较深入的理解。

在看这个章节之前,他知道basic的“rt”指令,可以在显示器上打印字符,但是具体为什么这个命令能打印字符,他就抓瞎了。

而现在他已经知道,这是因为显示器硬件中有一块被称为“显示存储区”简称显存的地方,这是个非常特殊的区域,这个区域当中的任何内容,都会被映射到显示屏上面。这个原理和他小时候玩的一个影子游戏非常相似。

晚上用手电筒照射在手上,然后就会在墙壁上显示出一个大大的影像,随着他的手指做出各种动作,墙壁上的图案也会随之变化。

显存就相当于他的“手”,而显示屏就是“墙壁”。

“rt”指令完成的动作,就是将要显示的字符,发送到显存区域,这样固件部分就会自动完成显存里面的内容和显示器上的内容的对应映射。

林鸿这台aeii的显示存储区域小得可怜,只有1kb大小,对应这显示器上24行40列的显示区域。

往显存里面放进去一个字母“a”,并且指定在哪一行哪一列,那么显示器上就会在对应的坐标上将字母a显示出来,这就是显示器显示字符的基本显示原理。

林鸿看了这部分没有再继续看下去,而是启动了苹果计算机,打算动手编个程序试试手。

编什么好呢

他有点拿不定主意。

初学者一般都会这样,对自己所学到的内容往往有些茫然,不知道如何将这些知识应用到自己的程序中。心中想编写程序,却又不知道该编一个什么样的程序。

其实林鸿目前最大的目标是想自己编写一个游戏,不过这其中似乎难度不小,凭他目前的能力有点好高骛远了。

最终他决定从最简单的开始,先在显示器上画一个小球。

basic有现成的画图函数,使用画圆的函数很快就在显示器上画好了一个小圆,然后再用白色对其进行填充。这很简单,直接调用函数就实现了。

接下来,林鸿想让这个小球动起来,从一地方移动到另外一个地方。

basic里面没有移动函数,必须得自己来实现这个效果。

怎么才能移动

林鸿想起了以前在乡下看电影的情景。电影胶带是由一张张静态的胶片组成的,通过移动着写胶片,就会让人物动作起来。孙武曾经从放映员手里得到过这么一段胶片,林鸿仔细观察过,相邻的胶片看似一样,实际上是不相同的,动作之间有细微的移动。

他觉得自己也可以使用这种方式,让小球动起来。

于是,他在小球的旁边再画了一个小球,相当于是第二张胶片,但是如果想要实现动态效果,前面那个小球就必须擦除。

如何擦除呢basic里面可没有擦除图像的指令函数。

林鸿想了半天,最终使用了一个比较笨的方法,他在前一个小球的地方,再画了一个黑色的小球,正好将原来的覆盖掉了,而背景颜色也是黑色的,这样就相当于将小球给擦掉了。

具体过程是这样的,林鸿先画一个白球,一秒钟之后,在左移五个像素的地方再画一个白球,于此同时,用黑球将原来的白球给覆盖,如此重复,一直到屏幕的最右端。通过控制每次停留的时间和位移的长度,他还可以调节小球移动的速度。

看着显示器中快速移动的白色小球,林鸿脸上露出了会心的笑容,现在完成的功能虽然比较简单,但这是一个很好的开始。

第九十二章轻易晋级

更新时间20125258:01:09字数:2132

第二天,凌晨六点。

在电脑前又呆了一个晚上的林鸿站起来伸了个长长的懒腰,活动了一下有些僵硬的脖子和其他关节。

显示器中,满屏显示着一个中国象棋棋盘,在棋盘上,有一幅残局,林鸿刚刚就在这上面摆放着棋子。

这是他忙了一个晚上的成果,中国象棋。

这也是他学计算机以来,做出的第一个游戏。

昨天,他完成了圆球的移动之后,脑海中便冒出了这样一个想法:为什么不用计算机来做一个象棋游戏

其中涉及到的内容,主要是进行绘图,相对来说比较简单。

于是,林鸿便开始动手编写代码。

首先是画棋盘,纵横线条交叉,画出楚汉大本营和边界

然后是画棋子,帅相士兵车马炮

接着,便是考虑如何选择棋子,并让用键盘的方向键来对其进行控制