![]() |
#2
一笔苍穹2006-05-26 01:57
欢迎大家光临C图形编程专区,我是版主一笔苍穹,在这里我们将一起讨论那些与C图形编程有关的话题。 我现在还清楚的记得我刚学C语言的那会儿,那个时候我用的编译环境是Turbo C,相信这个东东大家都不会陌生——Borland出品的一个很古老很经典的编译环境,现在许多初学者也还在用着它,不为别的,只因为基于这个编译环境的教程和资料特别多,初学者很容易上手。大家在刚学的时候可能都会有我当时的那种经历:趴在键盘上对着教材敲了许久,然后又是查错又是修改捣鼓了半天,最后好容易才在黑乎乎的屏幕上跳出诸如”Hello world!”几个字母,一开始还很兴奋,可一到后来就越发觉得无聊,因为捣鼓来捣鼓去的最后也只是一块黑乎乎的屏幕上显示几行字(在Windows下则也许是弹出一个DOS虚拟窗口),而且还不能显示汉字,更别说显示图片什么的了,没劲,再一看人家的游戏甭管商业的业余的花花绿绿的多有意思,是吧?我也不是说所有学编程的朋友都和我一样有这种想法,但相信有相当一部分的确是这样的。我当时就是在这种思想的驱动下,一步一步走进了图形编程的世界。 也是基于这个想法,我们开了这个专区,就是用来和对这方面有兴趣的朋友们交流讨论有关图形编程的各种问题。性急的朋友可能这会就要问了:我想用C语言写个RPG游戏应该怎么做?呵呵,做个好一些的游戏不是一天两天的功夫,也不是一两句话能够说的清的,我的这篇也只是介绍性的帖子,而不是技术性的帖子。我开这个帖子,是为了让大家粗略了解自己目前正在使用的编译环境如何搭建到可以开发图形程序,而不是直接讨论如何显示一幅位图或者制作一个游戏。 好了,废话了这么多,咱们言归正传吧,首先我们来看看初学者常用的Turbo C(以下简称TC)环境下应该如何编写图形程序: 在TC下,你至少可以使用它自带的Graphics库来写出一些基本的图形程序,说基本是因为你只利用它能绘制一些基本的几何图形,譬如圆啊线啊什么的,显示位图汉字什么的则是力不从心了,由于它是系统自带的,使用非常方便,所以许多朋友都用它来写一些简单界面的图形程序,对这个库本身我没更多要说的了,因为网上已经有N多的教程源码,我只提醒初哥们一句:记得把驱动文件Egavga.bgi(当然也可能是其它的)放在你的程序工作目录下,否则程序是无法执行的。另外值得一提的是这个库后来还放出了许多扩展驱动,譬如Svga256.bgi和Svga64K.bgi,也许你已经猜到了:前者是256色驱动,后者是高彩(65536色)驱动,这些驱动让你的程序能支持相应的色深,这很有吸引力,因为默认的Egavga.bgi根本办不到。要使用扩展驱动的过程和原来差不多,但你还必须用installuserdriver()函数安装这个驱动。 即使有了扩展库,也还是有美中不足的地方,就是库函数的功能并未增多,你仍然只能画画线或框什么的,当然如果你对位图格式足够了解的话你也可以将图片有画点函数一点点的画在屏幕上,但这会相当的慢,因为扩展驱动的性能原本就不好,如此一来你会看到一张图片像在屏幕上慢慢展开一样。我曾经也尝试过在扩展驱动的基础上写一组功能更强的函数,我写出来了甚至还给它命名为Lizard,但就是因为性能的问题我把它封闭在备份包中了。 也许上面的介绍会让你灰心丧气,其实大可不必,由于用TC的人很多,所以早就有许多“第三方”开发的图形函数库了,譬如TC256,NEO SDK,Graphics++,SVGACC等等诸多图形库。下面我选几个有代表性的介绍一下。
只有本站会员才能查看附件,请 登录 然后要介绍的是Graphics++,网友陈凯以及他的工作室的一个作品。顾名思义,这是Graphics库的一个扩充版本,以支持更多的图形功能,其运作原理正是我们刚刚讲到的使用扩展驱动,这个库与原来Graphics结合的很好,而且在原来的基础上增加了调色板管理、位图显示、汉字显示、Alpha透明、时钟机制、音频播放等功能函数,我个人认为这很好,因为大量的原来基于Graphics库的程序都能经过少许修改就能采用这些扩充功能。但是前面已经说的到性能问题再次被引发,引用作者本人的话是“由于底层是采用的Graphics库,速度方面的缺憾是无法避免的”。陈凯的工作室网站是:http://rockcarry.home.sunbo.net。
下一节出场编译环境:DJGPP,敬请关注! [此贴子已经被作者于2007-5-28 9:22:40编辑过] |
或许您正急迫地想知道,如何在程序中:
绘画你思维中的图形;
显示本地中文;
显示图片;
驱动鼠标;
播放音频;
……
自行实现这些功能将会让您欣喜不已!
想想用您的代码去驱动一个鼠标是多么有趣的事情,
您是多么厉害!
不要谦虚地拒绝别人的赞赏,
因为正是您让一个鼠标动起来了!
[C图形专区]的开设正是为了被此类困惑已久的网友们一个新的天地。
深入图形编程是DOS编程中的高级话题,
凡属此类问题都将归结到此版咨询提问,
并且希望您能得到芸芸高手们的满意的答案。
还等什么?现在就开始探索吧!
[此贴子已经被作者于2006-5-26 13:45:44编辑过]