战魂小筑

讨论群:309800774 知乎关注:http://zhihu.com/people/sunicdavy 开源项目:https://github.com/davyxu

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  257 随笔 :: 0 文章 :: 506 评论 :: 0 Trackbacks

原文:http://blog.csdn.net/superjoel/archive/2009/03/21/4011475.aspx

 

IndieLib简介
IndieLib是一个2.5d引擎,使用它可以简化游戏开发的难度,提高游戏开发的速度。内部它使用Direct3d做硬件加速,但它并没有使用DirectDraw或者ID3DXSprite,而是直接将材质渲染在多边形上。它的设计重点是快速2d渲染,但同时也可以渲染3d模型。IndieLib的主要特点是:

  1. 简单的接口和超强的易用性:使用entities来代表图形实例,可以调用简单的函数来设置它们的属性。如"SetPos", "SetCollisionArea", "SetFade", "SetTransparency",等等

  2. sprites移位、旋转、镜像和缩放

  3. sprites Alpha blending, transparency, tinting and fading

  4. 渲染任何尺寸的图片(不一定非要是2的次方)。你可以载入10000x10000像素或更大的图片,IndieLib在内部会自动将它们分割成小的区块。还有,IndieLib可以自动丢弃显示窗口以外的区块,提高渲染速度。在IndieLib中,还可以使用摄像机(camera),当使用摄像机时(如旋转,拉远拉近等)只有你看到的会被渲染。

  5. SetGrid函数可以给sprites设定grids,所以当移动grid上的点时,可以得到如波浪等的特殊效果

  6. 2d和3d摄像机(camera)概念,完全独立于图形。可以方便的移位、旋转和拉远拉近

  7. 可以方便的创建多个视角(viewport),方便创建大屏幕分屏游戏

  8. 随意缩放,引擎会自动决定是否显示图形

  9. 动画系统,使用XML文件定义动画文件

  10. 高级碰撞检测系统,使用xml文件定义碰撞区域。区域类型可以是圆圈、矩形和三角形。还可以将多个碰撞区域定义为组,从而方便检测组成员的所有碰撞。定义碰撞区域后,你不用担心移位、缩放等操作会导致碰撞失效。引擎会自动重新计算碰撞区域。(非常适合于街头霸王类型的打斗游戏)

  11. 位图文字系统

  12. 渲染3d Mesh(你可以方便的将2d与3d图形混合起来显示)。也可以对3d模型进行方便的移位、旋转、镜像和缩放操作。这个特性可以是你制作"New Super Mario Bros"这样角色是3d,而场景是2d的游戏

  13. 灯光系统,可以为3d模型加入灯光效果

  14. 定时器(Timer),开始、结束、暂停,可以方便的控制时间

  15. 实体(Entity)类,用于2d或3d图形,可以方便的控制图形。

  16. Image类,用于载入、保存不同格式的图片文件,还可以实现gaussian, noise, equalize, saturation等特效

  17. 直接blit基本图形(矩形、圆圈、多边形、直线等)

  18. 鼠标、键盘输入支持

IndieLib是一个开源引擎,它的License是LGPL,这就是说你可以将它用于商业项目。

posted on 2009-07-30 16:13 战魂小筑 阅读(905) 评论(1)  编辑 收藏 引用 所属分类: 游戏开发技术C++/ 编程语言

评论

# re: (转)IndieLib开源游戏引擎第一篇中文介绍 2009-08-10 17:32 Adrian
这么爽?看来做恶魔城够用了!嘿嘿~  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理