!!本人最近在汉化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 |
|