用C++实现跨平台游戏开发之Allegro引擎

用C++实现跨平台游戏开发之Allegro引擎,第1张

用C++实现跨平台游戏开发之Allegro引擎,第2张

摘要:本文重点介绍了开源游戏开发库Allegro(Allegro低级游戏例程),同时涉及到一些深入的技术并提供了一个简单的样例程序,帮助你进一步确定它是否是一个适合你的开发平台。

第一,适合多种环境的引擎

Allegro最早于80年代末在旧的Atari ST平台上开发,随后迅速移植到流行的DJGPP环境(90年代初流行的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环境或模拟器,但是使用allegrol库可以很容易地集成OpenGL,allegrol库提供了类似GLUT的接口(包括扩展管理)。

二。绩效总结

在进一步使用API开发之前,我们先来看看Allegro提供的整体功能:

具体的像素级绘制功能,包括平面阴影、gouraud阴影、纹理映射、Z缓冲多边形和圆形绘制、填充、贝塞尔样条曲线、图案填充、sprite、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 //必须放在系统头文件
set_color_depth(32)的引用之后;//默认使用8位color
if(set _ gfx _ mode(gfx _ auto detect,640,480,0,0)!= 0) {
abort_on_error("无法设置32位颜色分辨率");
}

set_gfx_mode()的最后两个参数用于指定虚拟缓冲区的大小——图形屏幕存储在这个缓冲区中。这可以很容易地创建一个地形连续移动的冰壶游戏。例如,你可能想让虚拟缓冲区宽20%,以留出足够的空空间来平滑地滚动新的精灵和地形。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用C++实现跨平台游戏开发之Allegro引擎

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情