原文:http://blog.csdn.net/superjoel/archive/2009/03/21/4011475.aspx
IndieLib簡介
IndieLib是一個2.5d引擎,使用它可以簡化游戲開發的難度,提高游戲開發的速度。內部它使用Direct3d做硬件加速,但它并沒有使用DirectDraw或者ID3DXSprite,而是直接將材質渲染在多邊形上。它的設計重點是快速2d渲染,但同時也可以渲染3d模型。IndieLib的主要特點是:
-
簡單的接口和超強的易用性:使用entities來代表圖形實例,可以調用簡單的函數來設置它們的屬性。如"SetPos", "SetCollisionArea", "SetFade", "SetTransparency",等等
-
sprites移位、旋轉、鏡像和縮放
-
sprites Alpha blending, transparency, tinting and fading
-
渲染任何尺寸的圖片(不一定非要是2的次方)。你可以載入10000x10000像素或更大的圖片,IndieLib在內部會自動將它們分割成小的區塊。還有,IndieLib可以自動丟棄顯示窗口以外的區塊,提高渲染速度。在IndieLib中,還可以使用攝像機(camera),當使用攝像機時(如旋轉,拉遠拉近等)只有你看到的會被渲染。
-
SetGrid函數可以給sprites設定grids,所以當移動grid上的點時,可以得到如波浪等的特殊效果
-
2d和3d攝像機(camera)概念,完全獨立于圖形。可以方便的移位、旋轉和拉遠拉近
-
可以方便的創建多個視角(viewport),方便創建大屏幕分屏游戲
-
隨意縮放,引擎會自動決定是否顯示圖形
-
動畫系統,使用XML文件定義動畫文件
-
高級碰撞檢測系統,使用xml文件定義碰撞區域。區域類型可以是圓圈、矩形和三角形。還可以將多個碰撞區域定義為組,從而方便檢測組成員的所有碰撞。定義碰撞區域后,你不用擔心移位、縮放等操作會導致碰撞失效。引擎會自動重新計算碰撞區域。(非常適合于街頭霸王類型的打斗游戲)
-
位圖文字系統
-
渲染3d Mesh(你可以方便的將2d與3d圖形混合起來顯示)。也可以對3d模型進行方便的移位、旋轉、鏡像和縮放操作。這個特性可以是你制作"New Super Mario Bros"這樣角色是3d,而場景是2d的游戲
-
燈光系統,可以為3d模型加入燈光效果
-
定時器(Timer),開始、結束、暫停,可以方便的控制時間
-
實體(Entity)類,用于2d或3d圖形,可以方便的控制圖形。
-
Image類,用于載入、保存不同格式的圖片文件,還可以實現gaussian, noise, equalize, saturation等特效
-
直接blit基本圖形(矩形、圓圈、多邊形、直線等)
-
鼠標、鍵盤輸入支持
IndieLib是一個開源引擎,它的License是LGPL,這就是說你可以將它用于商業項目。