2008-04-06
10年前的小游戏作品
10年前,还在大学的时候写了个挖雷,后来用作毕业设计,所以又增加了猜数字、俄罗斯方块和华容道。
DOS 下用 Turbo C 2.0 写的,开始,在鼠标显示问题上花了些脑筋,后来,在图形显示、PCX文件解析、汉字显示上也投入不少精力,再后来,使用中断增加了演奏音乐的功能(因为比较难听,所以缺省是关闭的,在游戏中按 PrintScreen 键可以开关音乐)。
现在看来,虽然当时的程序结构并不是很好,但是也还不算差
以前放到主页的时候,以压缩包小为第一,所以,甚至没有附带汉字库 HZK16,以至于有些人说程序出错,现在想想,还是应该提供完整的包的。
现在已经10年过去,所以做了一个软盘版镜像,小小纪念一下。这个镜像文件使用 FreeDOS 启动,可以用于任何虚拟机,比如 Virtual PC。(好像 FreeDOS 的 lbacache 不如 smartdrv 效果好),启动之后,直接进入游戏。另外,此镜像也附带了源代码。
DOS 下用 Turbo C 2.0 写的,开始,在鼠标显示问题上花了些脑筋,后来,在图形显示、PCX文件解析、汉字显示上也投入不少精力,再后来,使用中断增加了演奏音乐的功能(因为比较难听,所以缺省是关闭的,在游戏中按 PrintScreen 键可以开关音乐)。
现在看来,虽然当时的程序结构并不是很好,但是也还不算差
以前放到主页的时候,以压缩包小为第一,所以,甚至没有附带汉字库 HZK16,以至于有些人说程序出错,现在想想,还是应该提供完整的包的。
现在已经10年过去,所以做了一个软盘版镜像,小小纪念一下。这个镜像文件使用 FreeDOS 启动,可以用于任何虚拟机,比如 Virtual PC。(好像 FreeDOS 的 lbacache 不如 smartdrv 效果好),启动之后,直接进入游戏。另外,此镜像也附带了源代码。
评论
梁利锋
2008-04-09
其实游戏的逻辑并不算复杂,应该没有什么难懂的。其中比较麻烦的部分,大体都是一些 DOS 下的特殊处理,现在应该用不太到了。
举个例子,游戏使用640x480x16色,显示图像本来可以使用画点的方式,不过,速度很慢,所以使用直接操作显存的方式。但是,这种显示模式比较特殊,不是同一个点的4位在相邻的位置,而是每一位分别在不同的层,也就是一共有4层,每层都是640x480x2色,所以,操作上也需要针对这种情况特殊处理(应该也是因为如此,在虚机里显示速度并不快),而这种方式,现在应该不会用到了……
PS: 现在发现,之所以我感觉 FreeDOS 的 lbacache 不如 smartdrv,主要是因为 lbacache 缺省并不对软盘提供缓存。
举个例子,游戏使用640x480x16色,显示图像本来可以使用画点的方式,不过,速度很慢,所以使用直接操作显存的方式。但是,这种显示模式比较特殊,不是同一个点的4位在相邻的位置,而是每一位分别在不同的层,也就是一共有4层,每层都是640x480x2色,所以,操作上也需要针对这种情况特殊处理(应该也是因为如此,在虚机里显示速度并不快),而这种方式,现在应该不会用到了……
PS: 现在发现,之所以我感觉 FreeDOS 的 lbacache 不如 smartdrv,主要是因为 lbacache 缺省并不对软盘提供缓存。
chucai
2008-04-08
看源码固然好,如果您能分析一下源码就更好了。哈哈。
发表评论
- 浏览: 13614 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
Visual Studio 2008 的缺 ...
看了几个自己写的项目,发现cs文件的代码页都是utf-8带签名的,不知道我看到代 ...
-- by 梁利锋 -
导航、权限管理及 Linq 应 ...
PostSharp 很酷,而且效率比 Reflection 高,值得一试。
-- by 梁利锋 -
导航、权限管理及 Linq 应 ...
哦,原来这样。 DynamicProxy 确实不错,通用性很好。
-- by 梁利锋 -
导航、权限管理及 Linq 应 ...
因为对于一些不考虑客户端的web程序来说,似乎没必要自己调用自己的 WCF we ...
-- by oldrev -
导航、权限管理及 Linq 应 ...
@oldrev 为什么感觉效率很低呢? 就我自己的开发经验,感觉效率低,和真的 ...
-- by 梁利锋






评论排行榜