Schemat gry 3D Irrlicht
Ostatnio zmodyfikowano 2014-05-31 15:48
ggerek Temat założony przez niniejszego użytkownika |
Schemat gry 3D Irrlicht » 2014-05-31 15:26:35 Mam do was prośbę. Żeby się za coś zabrać muszę to w 100% rozumieć. Pisząc grę 2D robiłem coś podobnego jak ten schemat : biblioteki
inicjalizacja grafiki, dzwieku itd.
glowna petla { rysowanie poruszanie logika aktualizowanie_stanu_gry }
I wszystko wykonywało mi się w głównej pętli. Ale cały czas nie mogę zrozumieć jak to działa w silniku Irrlicht. for( int i = 0; i != 50; i++ ) { node_pud = menage->addAnimatedMeshSceneNode( pudlo ); node_pud->setPosition( core::vector3df( 0, 300 * i, 900 * i ) ); node_pud->setScale( core::vector3df( - 300, - 300, - 300 ) ); node_pud->getMaterial( 0 ) = tekstura; }
while( device->run() ) { video->beginScene( true, true, video::SColor( 255, 0, 0, 0 ) ); menage->drawAll(); video->endScene(); }
Rozumiem, że powyższa pętla jest "główną pętlą gry", ale gdzie ja tu mam umieścić rysowanie świata, poruszanie się itd. Ustawianie/Rysowanie tych pudeł wykonuje się w przed tą pętlą czy w trakcie jej działania ? Głupie pytania, ale nie potrafię na nie znaleźć odpowiedzi. |
|
ison |
» 2014-05-31 15:43:01 gdzie ja tu mam umieścić rysowanie świata |
Rysowanie świata odbywa się tutaj: menage->drawAll();IrrlichtDevice trzyma po prostu wskaźniki na utworzone obiekty i przy wywołaniu drawAll() je rysuje. Ten wskaźnik jest tworzony w tym miejscu: node_pud = menage->addAnimatedMeshSceneNode( pudlo );, node_pud to nie jest jedyny 'uchwyt' do node'a, silnik Irrlichta trzyma swój. node_pud w tym przypadku to tylko interfejs do jego modyfikacji (np. node_pud->remove() informuje silnik, że chcesz wyrzucić node'a). Gdzie chcesz. while( device->run() ) { foo(); foo2(); movement(); node->setPosition(...); ... video->beginScene( true, true, video::SColor( 255, 0, 0, 0 ) ); manager->drawAll(); video->endScene(); }
|
|
ggerek Temat założony przez niniejszego użytkownika |
» 2014-05-31 15:48:28 Dzięki bardzo już mniej-więcej rozumiem
|
|
« 1 » |