初心者向けのIrrlichtエンジンの基本

Irrlicht Engineのような興味深いものについてお話ししたいと思います。 まず、それが何であるかを決めましょう。 Irrlichtは、C ++で書かれた強力な3Dグラフィックエンジンです。 この奇跡は、単純な2Dおよび3Dアプリケーションの両方の開発、およびゲームに適しています。 他のエンジンと同様に、Irrlichtには多くの機能があり、その主なものはプラットフォームに依存しないことです。つまり、Windows用のゲームを作成したプログラマーは、LinuxまたはOSXを実行するデバイスに転送するために1行のコードを書き直す必要はありません。



設置



このレッスンは初心者向けに設計されているため、最も簡単な方法でエンジンをインストールします。 このためには、コード::ブロックが必要です。 Irrlichはこのブロックの最新バージョンとあまり仲が良くないため、ここからダウンロードして 、テスト済みのバージョン10.05をインストールしてください 。 コード::ブロックのインストーラーにはコンパイラーが既に含まれているため、個別にダウンロードする必要はありません。 次に、プロジェクトを保存するハードドライブにフォルダーを作成します(「D:/ IrrlichtDev」があります)。 ここから最新バージョンのIrrlichtをダウンロードし、作成したディレクトリに解凍します。



プロジェクト作成



必要なものはすべて揃っています。プロジェクトを作成します。 コード:ブロックを開き、さらに[ファイル]> [新規]> [プロジェクト]を選択し、[Irrlichtプロジェクト]を選択します。 指示に従って、プロジェクトに名前を割り当て、保存するディレクトリを選択し、コンパイラとして「GNU GCC Compiler」を指定し、要求があればエンジンの場所を伝えます。



これで、プロジェクトが作成され、最小限のコードが自動的に生成されますが、コンパイルしようとすると、2つのエラーが返されます。 大丈夫です、70行目でdimension2d dimension2du . , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }











置き換えdimension2d dimension2du



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







dimension2d dimension2du



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







 dimension2d  dimension2du
      
      



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







dimension2d dimension2du



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







 dimension2d  dimension2du
      
      



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();



, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }











dimension2d dimension2du



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







 dimension2d  dimension2du
      
      



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);



.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }











dimension2d dimension2du



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







 dimension2d  dimension2du
      
      



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .



.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }











dimension2d dimension2du



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







 dimension2d  dimension2du
      
      



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));



, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }











dimension2d dimension2du



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







 dimension2d  dimension2du
      
      



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







dimension2d dimension2du



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







 dimension2d  dimension2du
      
      



. , , .



, Irrlicht. ( , ) :



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_SOFTWARE, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . while(device->run()) // . , . { driver->beginScene(true, true, SColor(0,200,200,200)); // . smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }







, . :



IMeshSceneNode * wall = smgr->addCubeSceneNode();







, , . , .

, , :



wall->setMaterialFlag(EMF_LIGHTING,false);







.

, , . :



wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); // "0" .







.

, ? :



wall->setRotation(wall->getRotation() + vector3df(0,1,0));







, .



, .

"i", , 256, . R, G B . , while



:



while(device->run()) { int i; i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); driver->endScene(); }







, .

:



#include <irrlicht.h> using namespace irr; // using namespace core; // , , using namespace scene; // , using namespace video; // . using namespace io; // using namespace gui; // int main(int argc, char** argv) { IrrlichtDevice *device = // . createDevice(EDT_OPENGL, dimension2du(640, 480), 16, // 1- - . false, false, false, 0); // , EDT_OPENGL, . device->setWindowCaption(L"Hello HABRAHABR"); // . IVideoDriver* driver = device->getVideoDriver(); // . ISceneManager* smgr = device->getSceneManager(); // . smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // . IMeshSceneNode * wall = smgr->addCubeSceneNode(); wall->setMaterialFlag(EMF_LIGHTING,false); wall->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg")); int i = 0; while(device->run()) // . , . { i++; if (i>256) i=0; driver->beginScene(true, true, SColor(0,i,i,i)); // . wall->setRotation(wall->getRotation() + vector3df(0,1,0)); smgr->drawAll(); // . driver->endScene(); // . } device->drop(); // , . return 0; }










All Articles