[原创]如何编写自己的图形开发包 — 前言
此文章出至 www. 作者:孙靖[bo]前言[/bo]
看着我们论坛这么不景气很让人伤心,看它的趋势有点像我以前看过的很多C图形论坛的命运,逐渐的就消声灭迹啦。心里很不是滋味。
当然造成这样的结果的原因是有多方面的,具体来说最主要的还是各斑主的疏于打理,其中我也有很大的责任。而我真的想说的也是庆伟兄<kk4868>所说:“有感于新手太多”。大家都提些其实只要baidu一下就能出答案的问题,大家实在不好做答。因为这些能自己找到答案的问题最好还是您自己去找,只有这样你才能大踏步前进。还有就是太多朋友总提些TC下graphics库的的问题,而这些也是可以通过自己寻找试验得到结果的,所以像类似的问题最好还是由您自己去寻求答案。因为我自己就是这么走过来的,我知道怎么样学习探索对自己是有最大帮助的。
还有就是,我想强调您学习的目的。如果只是为了以后有个好前程我看你不用浪费时间直接去学VS2005,C#这样的开发工具吧。说实在用WIN下的高级工具开发真没什么意思。除了你对语言的掌握更多的可能是你对FromWork开发环境的掌握,总在别人限定的框架下被人蒙住双眼机械的劳动,而事实上为了开发效率,就必须蒙住你的双眼屏蔽诸多细节,所以这也是情理之中的事。
那如果您是因为痴迷编程,那么刨根问底是个必须的精神。可这样也存在矛盾,你总要为现实生计考虑这样你就不得不牺牲你的理想,学一些实际能给你快速带来收入的东西。(我现在就这样一个状态)
可不管怎么样,不管你出于什么目的。你想最后达到一个比较好的高度,终归刨根问底的精神是不可少的。你要成为大牛也必须走这么一个过程。
写这篇文章,除了将图形编程最让人激动的其中一部分 —— 自己写底层,展现给大家外,也是自己做个总结。毕竟不能总在玩16位的东西。因为实际我自己现在已经很少玩16位的东西了。为了工作很多WIN工具我都会用,且不管是否熟练,但我总能快速掌握。(所以说这是矛盾,我能快速掌握就说明这样的东西门槛底,很多人都可以快速掌握,这样的话就容易贬值。要想站在高处就必须是拔尖的精英。可在中国IT行业精英一般都是命短的,这个命短还指职业生涯,所以很让人苦恼)
下面介绍一下我们将实现的平台和将实现的功能:
平台: DOS
编译器: TC2.0
实现功能: 最基本的图形开发包,额外实现鼠标。并在架构层面简单阐述构建一个高效的架构,并适当做些衍生开发,如3D框架。
也许有朋友一看到这就在撇嘴,怎么又是炒冷饭?特别是有的人,一看什么TC2.0就高呼 —— “让老古董退休”。而我只
想说,请稍安勿躁容我最后一次炒个冷饭吧。以后也许真再也碰不上16位的东西啦。
提问:为什么一定要用TC2.0呢?
答:因为其简单,操作性好。本问只在阐述怎么去实现一个图形开发包的编写,所有TC刚好够用,哪怕少一点就不足多一点又浪费。如果您感兴趣,可以将其用GCC或Open Watcom实现,并可实现32位的图形开发包(需要的资源,可以到[url]www.[/url]去下载,细心的有缘人可以找到让你欣喜的东东哦)。
提问:是在什么操作系统平台呢?
答:DOS。为什么是他呢?请问,您在WIN下你看过可以轻松直接操作硬件端口来实现图形化模式?(敌人,的确有牛哥哥可以做到,可有什么意思?WIN本身就是图形模式下的)你只能通过WIN下的诸多开发包,一次又一次的调用函数实现就可以了,具体这个函数干了些什么?怎么干的?你不用操心,也不可能让你操心。郁闷~!也许是我偏执,我真觉得这样没多少意思。那除外到LINUX下去怎么样?可以,我大大的赞同!若您是高手并可很简单的在LINUX下实现,我要拜您为师。如果我会我也就把在LINUX下实现的发出来啦。
提问:自己写图形包有何意义,直接学习使用现成的图形包不是更好吗?
答:从商业和实际生存角度上说,我很赞同直接学习使用现成成熟的开发包。我自己也在不断的学习WIN下的知识。最近在玩OPENGL。这么说吧,实现一个自己的图形包是为了使您更好的理解各种知识的本质。以此为圆心发散的了解学习更多其他领域的知识。让我们来看看:如果你直接学习使用一些图形包,那么你做的最多的事就是查看文档调用函数,实现你想要的效果。那么他那些函数具体做了些什么,怎么做的你并不清楚。哦!太让人不爽啦。这就像是蒙着脸跳舞的美女,把这心勾的痒痒的让人抓狂。而如果你有自己写过一个开发包的经历,我可以保证当你再去学比如WIN下的各类开发包,一看到一个画面效果,你心里就在想他应该是这样实现的。要是这样实现我那样一个写法效率就要高的多。接着你就可以动手实验,一旦验证你的想法是对的。就比如别人看那蒙面舞女流口水,你在旁边冷眼:“SB,那是个刀疤脸人妖,还YY呢,哈哈哈哈哈哈”。
好了,废话那么一大段,可我还是觉得是必须的。我只向告诉大家我对编程,使用什么开发工具在什么平台下实现是一个什么样的态度。如果您有其他的看法我也理解。因为这个事本身就没有谁对谁错一说,有的只是您是否赞同而已。仁者见仁,智者见智,只希望我的这篇文章能为很多初学者拨开眼前的迷雾,早日以彻底理解图形机理的状态迈入WIN,LINUX这些更高级层次的学习开发。
配套资料下载:
[[it] 本帖最后由 jig 于 2008-1-21 15:23 编辑 [/it]]
Code.rar
(1.23 MB)