用C 实现跨平台游戏研发之Allegro引擎
2008-02-23 05:24:06来源:互联网 阅读 ()
一、 一个适于多环境的引擎
Allegro最开始被研发于八十年代后期古老的Atari ST平台上,随后被快速地移植到流行的DJGPP环境(一个在九十年代早期流行的32位的MS-DOS扩展程式)。此后,Allegro被移植到最为流行的Windows C 研发环境中,包括VS,MinGW,Cygwin和Borland C 。另外的支持他的平台包括Linux,BeOS,QNX,Mac OSX连同几乎任何其他带有X11库的Unix平台上。
Allegro能着色到各种类型的位图和硬件加速的环境中,例如DirectX,XWindows,SVGAlib,FreeBE/AF,CGDirectDisplay,QuickDraw,等等。Allegro并不想提供他自己的3D环境或模拟器,但是OpenGL能够被容易地集成,这是通过使用AllegroGL库-他提供了一个类似于GLUT的接口(包括扩展管理)-实现的。
二、 性能概要
在进一步使用API研发前,让我们看一下Allegro提供的总体功能:
·具体到像素级的绘图函数,包括平坦阴影,gouraud阴影,纹理贴图,z缓冲的多边形和圆绘制,填充,贝塞尔样条曲线,图案填充,精灵,blitting(位图复制),位图计算缩放和旋转,半透明/光效果连同比例字体支持的文本输出
·FLI/FLC(在电脑生成的动画方面,这种格式比MPEG有更高的压缩性能)动画播放器
·播放后台MIDI音乐,可达64种同时的声音效果,并能录制样本波形和MIDI输入(声音平台支持,包括WaveOut,DirectSound,OSS,ESD,CoreAudio和QuickTime,等等)
·容易地存取鼠标,键盘,游戏杆等设备,还支持高分辨率定时器中断,包括一个DOS版本的垂直折回中断模拟器
·读/写LZSS压缩文档的例程
·数学函数,包括定点算术,表查找和3D矢量/矩阵/四元数操作
·GUI对话框管理器和文档选择器
·内建地支持16位和UTF-8格式的Unicode字符
三、 使用引擎
使用Allegro进行研发,就象在许多其他游戏场合下相同,游戏的总体结构都包括游戏开始前的初始化,游戏循环连同游戏完成后的清理。初始化意味着既包含Allegro启动代码也包含在开始的位置实现基本地装载或生成您的游戏级别。在创建您的初始化代码时,启动Allegro基本上没有什么代价付出(见图1).
假如您需要很多屏幕相关的真实性能,建议您首先礼貌地用get_gfx_mode_list()函数查询一下最大可用方式:
#include <allegro.h> //必须放于系统头文档的引用之后 set_color_depth(32); // 缺省情况下使用8位颜色 if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0) != 0) { abort_on_error("Couldn’t set a 32 bit color resolution"); } |
set_gfx_mode()的最后两个参数用于指定虚拟缓冲区的大小-我们的图像屏幕存储于其中。这能够使创建一个卷边游戏-其中地形是连续移动的-变得容易。例如,您可能要使虚拟缓冲区,比方说,宽出20%以留出足够的空间来平滑卷动新的精灵和地形。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: C 箴言:确保公开继承模拟“is-a”
下一篇: C 箴言:避免覆盖通过继承得到的名字
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash