分享
 
 
 

ALLGRO图形开发库的学习研究.1

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

ALLGRO图形开发库的学习研究.1

作者:vrix.ipona

!!本人最近在汉化ALLEGRO4.14的函数手册,希望大家踊跃参加此项工作。〈ALLEGRO中文函数手册-VriX版(未完成)〉

注意事项:

[1]ALLEGRO‘S HOMEPAGE+^_^+ALLEGRO.CC

[2]关于ALLEGRO 3.11的函数,风云作过对原始文档的汉化,详情请到--〉风云主页之ALLGRO

[3]ALLGRO 4.14版的函数说明文档-ENGLISH版本,请到--〉 English online documentation

[4]对ALLEGRO的学习是刚刚起步,希望有兴趣的网友可以与我共同开始对它的学习。在切磋中进步。

[5]大量的网友都为ALLEGRO做过升级或是类似的事,我将与他们取得联系,把他们的作品奉上。请关注。

[6]要用好ALLEGRO就得先用好DJGPP||BCC......,而对于它们+ALLEGRO的学习也将在这里提出相关的内容。

[7]这里将逐渐成为对ALLEGRO做全面报道的中文站点,除非我发生意外,不然的话,请关注这里的发展,谢谢。

我看过最新的ALLEGRO的English online documentation的一部分之后发现很多新的功能,同时发现,不是每一个函数都会用到,关于我下一步要做的GANIK,我暂时只针对要用到的图形函数做适当的例程和解释,风云对ALLEGRO的翻译停留在3.11版本,实在是遗憾,不过仍然要谢谢这位游戏界满出名的人物,我其实在2001年初就发现他对ALLEGRO的工作,由于那时不打算搞,也只是佩服他之后,没做任何事的过到现在(在搞16色的东东,由于有资料,所以觉得上手容易),看来ALLEGRO的发展已经使BCC可以编译它,那么为什么要用DJGPP做呢,一是BCC有功能强大的开发环境,虽然是文本的(对DOS而言),但用习惯了的家伙们,总是不愿意换个东东,而我呢,对图形开发比较感兴趣,恰巧DJGPP又没有集成开发环境FOR DOS,我打算发起这么个计划,其实并不一定能独立完成,希望对DJGPP有经验的朋友多支持我,我也能在此同时对ALLEGRO做最深入的了解,将来即使用了BCB,ALLEGRO也可以跟着过去闯一闯。不了解ALLEGRO的人其实很多呀,我希望通过我这里对他的学习达到推广的目的。

以下是ALLEGRO支持的平台和编译器:

DOS/djgpp - see docs/build/djgpp.txt

DOS/Watcom - see docs/build/watcom.txt

Windows/MSVC - see docs/build/msvc.txt

Windows/MinGW32 - see docs/build/mingw32.txt

Windows/Cygwin - see docs/build/mingw32.txt

Windows/Borland - see docs/build/bcc32.txt

Linux (console) - see docs/build/linux.txt

Unix (X) - see docs/build/unix.txt

BeOS - see docs/build/beos.txt

QNX - see docs/build/qnx.txt

MacOS/MPW - see docs/build/macos.txt

Darwin/MacOS X - see docs/build/darwin.txt

其实说这么多都是白费,我们现在要做的是一个DOS下的东东,只不过是小小的应用一下这个完美的库而已,它是前途光明的,所以我在这里提出对他的学习,否则要一个过时的库做软件,没有未来的东西,谁会关心呢,DOS下它的应用只是个开始,以后要不断到WINDOWS,更或是其他系统,如此说法,不知道看到这里的网友是不是开始有了兴趣呢???

给DJGPP做东西有个难点,遍查YAHOO,SOHU发现没有一个连接是可用的,也就是说,你下载不到DJGPP,我的网站连接的是吴进提供的djgpp,版本自然不是最新的,为了用最新的DJGPP,我们该怎么办呢??(如果不在乎最新不最新,我网站上连接的就可以满足暂时的需要)我的做法是,下载DEVCPP,他不仅提供了GCC(也就是DJGPP的编译器),还有G++这个配套的C++编译器,学C或是C++,都可以得到满足,而且DEVCPP和比VC支持的东西少不了多少,所以它是得到最新工具的第一选择,不知道诸位对我的想法有何异议呀???

搞定了编译器,再来说GCC的参数问题:

用法: GCC.EXE [选项] 文件...

Options:

--help 显示此信息

(Use '-v --help' to display command line options of sub-processes)

-dumpspecs Display all of the built in spec strings

-dumpversion 显示编译器的版本信息

-dumpmachine 显示编译器的目标处理器

-print-search-dirs 显示编译器可查找的目录

-print-libgcc-file-name Display the name of the compiler's companion library

-print-file-name=〈lib〉 显示库所在的绝对路径〈lib〉

-print-prog-name=〈prog〉 Display the full path to compiler component 〈prog〉

-print-multi-directory Display the root directory for versions of libgcc

-print-multi-lib Display the mapping between command line options and

multiple library search directories

-Wa,〈options〉 Pass comma-separated 〈options〉 on to the assembler

-Wp,〈options〉 Pass comma-separated 〈options〉 on to the preprocessor

-Wl,〈options〉 Pass comma-separated 〈options〉 on to the linker

-Xlinker 〈arg〉 Pass 〈arg〉 on to the linker

-save-temps Do not delete intermediate files

-pipe Use pipes rather than intermediate files

-specs=〈file〉 Override builtin specs with the contents of 〈file〉

-std=〈standard〉 Assume that the input sources are for 〈standard〉

-B 〈directory〉 Add 〈directory> to the compiler's search paths

-b 〈machine〉 Run gcc for target 〈machine〉, if installed

-V 〈version〉 Run gcc version number 〈version〉, if installed

-v Display the programs invoked by the compiler

-E Preprocess only; do not compile, assemble or link

-S 编译; 不汇编,也不连接

-c 编译和汇编, 但不连接

-o 〈file〉 输出到文件 〈file〉

-x 〈language〉 Specify the language of the following input files

Permissable languages include: c c++ assembler none

'none' means revert to the default behaviour of

guessing the language based on the file's extension

Options starting with -g, -f, -m, -O or -W are automatically passed on to

the various sub-processes invoked by GCC.EXE. In order to pass other options

on to these processes the -W〈letter〉 options must be used.

For bug reporting instructions, please see:

〈URL:http://www.gnu.org/software/gcc/faq.html#bugreport〉.

djgpp的FTP站点,提供最新版本下载

通过上面这个连接也可以得到最新的DJGPP,然后编译ALLGRO的代码得到.a结尾的库。如此只好,你可以使用ALLEGRO这个完美的东东,现在我们由于是初学,所以吴进提供的DJGPP的精简版可以满足需要,除了版本低,其他没什么。

吴进的BMPview被我改了放在这里

以上只是我今天做的一部分,其实在做它之后,我把我原来程序当中用到的BAR_9X();BAR_2K();BAR_LINUX();等10多个函数重写了放在GANIK里,但是发现BMP图调用时一但PALLETE被修改,出现的效果将与我想的不一样,为了更好的应用这些函数我打算暂不公开代码,一面丢人,不过看过我RIPPLE的朋友该知道如何实现他们,好了,今天就做这么多。(2002.10.30)

上面的部分有漏洞呀,我提到DJGPP没集成开发环境是指没有图形化的开发环境,而不是RHIDE那个文本的,对于ALLEGRO的字符显示,鼠标调用做了研究,已经能够应用到软件当中,至于要做的吗,其实是对ALLEGRO所调用的不同色深做最全面的了解,也就是掌握它调用不同色深图形模式的函数,起码知道要找的颜色大概在哪里。我暂时用的PALLETE是随BMP调用的,在做自己的256色PALLETE,不过用16位色深更好,不过色彩太多,其实用起来到不见得爽了,不能象16色一样有英文名做标记,6万种色,定义6万个单词可不是好记的,要托福以上的水平呀,不说废话,今天做的还是对BMPVIEW的加工。

void set_color_depth(int depth);

设置点的格式来由随后调用 set_gfx_mode() 和 create_bitmap() 时使用. 有效的颜色深度有 8 (缺省值), 15, 16, 24, 和 32 位.

int set_gfx_mode(int card, int w, int h, int v_w, int v_h);

切换图形模式. 参数 card 必须是以下值中的一个:

GFX_TEXT - 返回文本模式

GFX_AUTODETECT - 让 Allegro 选择一个合适的图形驱动程序

GFX_VGA - 选择 VGA 模式 13h (320x200 或 320x100)

GFX_MODEX - 选择平面扭转的(plannar tweaked) VGA 模式

GFX_VESA1 - 使用 VESA 1.x 驱动程序

GFX_VESA2B - 使用 VBE 2.0 分页模式驱动程序

GFX_VESA2L - 使用 VBE 2.0 线形页面缓冲驱动程序

GFX_VESA3 - 使用 VBE 3.0 驱动程序

GFX_VBEAF - 使用 VBE/AF 加速器 API (未完成)

GFX_XTENDED - 使用断链式(unchained) 640x400 模式驱动程序

我现在用的是

set_gfx_mode(GFX_VESA1, 800, 600, 0, 0);//800,600是分辨率

set_color_depth(8);

参数 v_w 和 v_h(也就是那两个0所在的位置) 指定了最小虚拟屏幕的大小, 因为你需要一个大的虚拟屏幕来做硬件滚屏或多页面切换. 如果你不在乎虚拟屏幕的大小就应该将它们设为零. 虚拟屏幕回造成许多混乱, 但是它们真的 很简单.(详情请见风云对ALLEGRO 3.11函数说明书的翻译)

以上是对风云翻译的引用,如果不是很懂,请使用与我一样的培植,然后可以使用800X600,256色的功能,不过对PALLETE的设置将在以后的部分详述。

void set_palette(PALETTE p);

设置整个调色板的 256 种颜色. 你应提供 256 个 RGB 结构的数组.

所有的 Allegro 绘图函数使用整数参数来代表颜色. 在真彩分辨率下这些数字以红,绿,蓝的联合位来直接描述色彩, 但是在常规的 256 色模式下这些值被看作是当前调色板的一个索引号, 这个调色板是描述 256 种可能的色彩中每一个颜色的红,绿,蓝的强度值的一个列表. 调色板被储存在一个 RGB 结构里, 它包含了以 VGA 硬件格式描述的红,绿,蓝的强度值,每一范围是 0-63. 这个结构是这样定义的:

typedef struct RGB

{

unsigned char r, g, b;

} RGB;

例如:

RGB black = { 0, 0, 0 };

RGB white = { 63, 63, 63 };

RGB green = { 0, 63, 0 };

RGB grey = { 32, 32, 32 };

类型 PALETTE 被定义成 256 RGB 结构的数组

对与没一个与调色板有关的函数都是要掌握的,虽然现在不能都用到,但要实现一个复杂的程序,它是必须的,尤其是你要调用用其他软件做的BMP图时,你的调色板会被重新设置,(用BMPVIEW2可以看到每个256色BMP图的调色板)要重新使用你原来的调色板,就得调用喽,慢慢来吧,我是搞定8成关于PALLETE的函数和变量了,就等应用啦,朋友们加把劲儿呀。我可要开始用ALLEGRO做软件啦,才两个通宵,搞成这样已经不错了,我一出网吧,所有关于ALLEGRO的东西都留在网上,希望有机器的朋友珍惜机会呀,不要落后呦!*^_^*(11.03.2002 0:19)

作者:vrix.ipona

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有