~Irrlicht Tutorial1~ The Begining....

posted on 10 Nov 2008 18:30 by apemon-chan  in game-programing

           หลังจากที่ได้แนะนำถึงการติดตั้งengineนี้ไปคร่าวๆแล้ว คราวนี้เราจะมาลองทดลองใช้งานมันให้เป็นรูปเป็นร่างมากขึ้น โดยจะนำcodeที่ได้ทดลองคราวที่แล้วมาอธิบายงับ

           เริ่มต้นก่อนการใช้งานทุกครั้ง เราจะต้องincludeมันก่อนงับ(อันนี้ ใครที่เป็นCคงรู้ดีอยู่แล้ว)

                      #include

           ต่อมาการที่เราจะcompileผ่านได้ เราจะต้องlinkมาที่librariesของirrlichtงับ

                     #pragma comment(lib, "Irrlicht.lib")

           ต่อมาเราจะมาจัดการเกี่ยวกับnamespaceงับ โดยirrlichtจะมีnamespaceต่างๆดังนี้(ดูได้docของirrlicht)
                irr เก็บทุกอย่างของirrlicht               
                irr::core เก็บพวกคลาสพื้นฐาน เช่น พวกvector,matrix4
                irr::gui จัดการพวกgui
                irr::io
                irr::scene                
                irr::video จัดการเรี่ยงเกี่ยวกับการrender

                    using namespace irr;

          สร้างirrlicht deviceที่จะเป็นตัวหลักของโปรแกรม

                   IrrlichtDevice *device =
                   createDevice(video::EDT_DIRECT3D9, core::dimension2d<s32>(640, 480));

          อันนี้จะสร้างโดยใช้directx9ในการrender ถ้าต้องการใช้ตัวอื่นให้เปลี่ยนEDT_DIRECT3D9เป็นตัวอื่น
                   OpenGL - EDT_OPENGL
                   DirectX 8 - EDT_DIRECT3D8
                   DirectX 9 - EDT_DIRECT3D9
                   Software - EDT_SOFTWARE

          ต่อมาสร้างSceneManagerเพื่อใช้จัดการsceneต่างๆ

                  scene::ISceneManager* smgr = device->getSceneManager();

          สร้างVideoDriverเพื่อใช้จัดการเรื่องการrenderภาพ

                  video::IVideoDriver* driver = device->getVideoDriver();

          while loopสำหรับใช้จัดการrender sceneต่างๆ

                  while(device->run())
                  {
                            driver->beginScene(true, true, video::SColor(0,200,200,200));
                            smgr->drawAll();
                            driver->endScene();
                  }

           ใช้งานเสร็จก็ลบdeviceทิ้ง

                  device->drop();

           เท่านี้ก็เป็นอันจบงับ หลายคนอาจจะงงกับcodeนี้(แน่นอนเป็นผมผมก็งง)ก็เป็นเพราะเรายังไม่เห็นภาพการใช้งานจิงงับ ซึ่งต่อๆไปเมื่อเราได้ทำอย่างอื่นเ้พิ่มเติมไป เช่น สร้างกล่องเราจะได้เห็นการใช้งานของSceneManagerที่ชัดเจนขึ้นงับ ส่วนอันนี้ สรุปcodeทั้งหมดนะครับ

                 #include
                 #pragma comment(lib, "Irrlicht.lib")
                
using namespace irr;
                 int main(){
                       IrrlichtDevice *device =
                       createDevice(video::EDT_DIRECT3D9, core::dimension2d(640, 480));
                       video::IVideoDriver* driver = device->getVideoDriver();
                       scene::ISceneManager* smgr = device->getSceneManager();
                       while(device->run())
                       {
                             driver->beginScene(true, true, video::SColor(0,200,200,200));
                             smgr->drawAll();
                             driver->endScene();
                       }
                       device->drop();
                       return 0;
                  }

 

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

Tweet

เมพขริงๆ wink

#1 By book on 2008-11-10 21:26

สนับสนุนผู้เขียนครับ


ขอบคุณครับสำหรับบทความดีๆยังไงอัพเดตหน่อยนะครับผมกำลังศึกษาอยู่พอดีจะไม่ลืม เลยครับ

#2 By gmnewss.co.cc (118.172.181.228) on 2009-09-12 18:35

Favourites