分享
 
 
 

谈谈TC256图形函数库的使用方法

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在看厌了TC编的命令行程序后,愈发觉得不爽,于是急切的想做一点TC的图形编程。TC自带的graphics库是一个不错的选择,但也有缺憾,只能支持到VGAHI图形模式,即640*480*16色,对图像的表现力真的太差。

还好在网上找到了一套功能较为完善的TC256图形函数库,它支持SVGA的640*480*256色的视频模式,支持汉字的输出、鼠标功能、256色位图输出、EMS内存管理、基本绘图函数、图像特效(动画、Alpha混合)等全面而强大的功能。本文不打算详细探讨该库的每一个函数的使用,而只具体讲讲该函数库的使用、编译方法和编程及编译时常遇到的问题。

使用方法。安装很简单,所有的函数都以源代码形式放在include目录下的.h文件中,只有将所有.h文件复制到您的TC的include目录下即可。一般这一步都没问题。

在编程时,需#include<all256.h>,将包含所有的TC256函数库功能。

通常使用该函数库的程序都采用以下框架:

#include<all256.h>

int main(void)

{

init256(SINGLE_SURFACE);

vpost();

close256();

return 0;

}

我们可以将所有的图形操作和您的程序代码插入到init256();与close256();两句之间,这也是属于成对编码的规范(关于成对编码请参看本站的《成对编码规范》一文)。

关于编译问题。由于TC256库使用了EMS内存,而且要求使用Compact以上的内存模式进行编译,所以要在TC的Options->Compile->Model中改内存模式,一般改为Huge即可。改完后还别忘记保存(Options->Save Options)。保存后即可进行编译,一般编译通过后即可运行。但是在Windows操作系统下可能会出现没有安装EMS内存驱动而无法运行的问题(双击后,一般症状是程序运行一闪而过)。在WinXP下的解决方法是右键单击您编译生成的程序,选“属性”项,在弹出对话框中选“内存”选项卡,将EMS内存设为最大(默认为无,选择下拉列表中最下面一个即可),设置完后点击确定,此时会在同一目录下生成一个指向该程序的MS-DOS快捷方式,千万不要觉得它不顺眼而把它删掉了,你的程序的正常运行全靠它了。此刻再双击你的程序,即可正常运行了。在Windows2000下好像不行,尽管可以像上面一样的进行设置,可是设置以后的程序就是无法运行,听说可以装一个什么软件的,不过到现在本人还是没搞定Win2000的问题,以后再研究吧。在Win95/98下,程序应该都能够正常运行的。

在编写程序时常会犯的错误。用过TC256库的人都应该知道puts256()这个函数,它就是在屏幕上输出一个中文字符串,看一下代码:

#include<all256.h>

int main(void)

{

init256(SINGLE_SURFACE);

puts256(10,10,"你好TC256!",YELLOW);

getch();

close256();

}

以上程序是编译能通过,可运行,可是却没有我们想要的效果,刚开始本人研究TC256库的时候就犯了这样的错误,明明用了puts256()这个函数,可是屏幕上就是没有字显示出来。就在我打算放弃的时候,才偶然在演示程序中发现了vpost()这个神秘的函数。在init256()时,我们传了SINGLE_SURFACE这个常量,就是将TC256系统初始化为单页面模式,相当于常说的双缓冲。我们所有的操作结果是不会立即反映到屏幕上的。刚才的puts256()的操作结果只是存放在了一个由TC256系统维护的缓冲区中,而vpost()的作用及时将缓冲区中的内容送入到显存里去,在vpost()之后,我们就能看到操作结果了。而使用缓冲和vpost()的意义在于提高TC256的图形性能和消除绘制图形时的闪烁。因此,正确的代码应该如下:

#include<all256.h>

int main()

{

init256(SINGLE_SURFACE);

puts256(10,10,"我好激动,我终于会用TC256函数库了!",YELLOW);

vpost();

getch();

close256();

}

另外,可能犯的错误是,汉字的输出要用到两个点阵字库,分别是hzk16和hzk24,如果你的程序找不到这两个文件,汉字的输出也会失败,通常在发布您的程序时,只要将你的程序和两个hzk文件放在同一目录下即可。(注:两个hzk文件都分别在TC256的压缩包里能找到)。

(未完待续)

作者:陈凯

2004.7.10

版权所有、不得转载

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有