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