注册 登录
编程论坛 C图形专区

[原创]如何编写自己的图形开发包 — 前言

jig 发布于 2008-01-21 13:37, 4368 次点击
此文章出至 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]]
15 回复
#2
xianshizhe1112008-01-21 14:17
自己也走过类似的一段
说的好完全赞同!
#3
nobush2008-01-21 18:30
稟版主:

我的編譯器就是OPEN WATCOM !
#4
RockCarry2008-01-22 13:04
工具始终是工具,关键的还是你运用工具的技术和能力。10年前,人们就在DOS下利用简陋的工具开发出了经典的游戏作品,然而,到了现在我们有了更加强大的开发工具,可许多人仍然是无所作为。从某种角度上讲,使用了现代化开发工具的我们,在技术上其实远远比不上10以前的游戏开发者。

因此,我坚持认为,从学习的角度上讲,开发工具的选择,始终都是次要的东西。关键的还是游戏编程的原理、技巧和方法。学习技术发展的历史,学习基础的技术,则更加可以为自己打下坚实的基础。

这也是我目前在业余时间仍然坚持做DOS下游戏开发的原因,在DOS如果没有做出成功的游戏作品,我是不会转向其他任何平台的。
#5
一笔苍穹2008-01-22 13:33
我也来顶一个,孙靖还打算写多少?
#6
jig2008-01-22 16:25
能基本算个图形包为止
#7
xxping2008-10-05 00:18
今天刚来此论坛,先顶了
#8
yinlubin2008-10-09 10:45
大哥,加油干!
#9
shomw2008-11-16 11:00
有志气事竟成!-赞同--
赞同!学习低级语言比学习高级语言更有意思。顶!!
#10
shomw2008-11-16 11:04
请教楼主图形问题?
请问楼主,C能在图形下汇编吗?多谢。能实行说说点用呀!
#11
落魄天涯2009-09-27 14:59
以下是引用shomw在2008-11-16 11:00:09的发言:

赞同!学习低级语言比学习高级语言更有意思。顶!!
C不是低级语言
#12
erchong20102010-04-07 13:31
一直在用 TC  习惯了
#13
KAKAXI6662011-03-17 14:40
你的观点我超赞。。。。知根知底是一种境界。。
#14
szjszj2011-07-03 19:19
楼主说的太对了
#15
lynsen2012-05-18 00:51
lz牛B!现在学C++数字图像处理了
#16
pycansi2012-08-03 13:23
兰州,握爪
1