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

11 篇文章 0 订阅
2 篇文章 0 订阅
天极软件专题专区精选     到天极软件“读编交流区”畅所欲言
Google专区 POPO专区QQ专区 QQ挂机了解Web2.0
Flash MX 视频教程Photoshop视频教程网页设计视频教程照片处理数字暗房
PPT动画演示教程Excel动画教程集Word动画演示教程Windows Vista专区
特洛伊木马专区黑客知识教程专区防火墙应用专区注册表应用专区
Windows API开发专区网络编程专区VB数据库编程专区图像处理与多媒体编程

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

border="0" marginwidth="0" marginheight="0" src="http://219.239.88.50:80/adsunion/get/;pl=pl-20-pip-software;tp=if;sk=0;ck=0;/?" frameborder="0" noresize="65535" width="1" scrolling="no" height="1">
   一、 一个适于多环境的引擎

  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%以留出足够的空间来平滑卷动新的精灵和地形。

共2页。 1 2 8 :
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值