|
Dernière modification
|
23-04-2008 18:16:27
|
Aranoth
|
Yep, voilà un vieil exemple que j'avais codé à l'arrache dans le temps : while(Device->run()) { Driver->setViewPort(rect<s32>(0,0,WinX,WinY)); Driver->beginScene(true,true,SColor(0,100,100,100));
for(int i=0; i<4; ++i) { Player.Node->setPosition(Player.Cam->getPosition()); Player.Node->setRotation(vector3df(0,Player.Cam->getRotation().Y,0)); }
Smgr->setActiveCamera(Player[0].Cam); Driver->setViewPort(rect<s32>(0,0,WinX/2,WinY/2)); Player[0].Node->setVisible(false); Smgr->drawAll(); Player[0].Node->setVisible(true);
Smgr->setActiveCamera(Player[1].Cam); Driver->setViewPort(rect<s32>(WinX/2,0,WinX,WinY/2)); Player[1].Node->setVisible(false); Smgr->drawAll(); Player[1].Node->setVisible(true);
Smgr->setActiveCamera(Player[2].Cam); Driver->setViewPort(rect<s32>(0,WinY/2,WinX/2,WinY)); Player[2].Node->setVisible(false); Smgr->drawAll(); Player[2].Node->setVisible(true);
Smgr->setActiveCamera(Player[3].Cam); Driver->setViewPort(rect<s32>(WinX/2,WinY/2,WinX,WinY)); Player[3].Node->setVisible(false); Smgr->drawAll(); Player[3].Node->setVisible(true);
Driver->setViewPort(rect<s32>(0,0,WinX,WinY)); Driver->draw2DImage(GUI,position2d<s32>(0,0), rect<s32>(0,0,800,600), &rect<s32>(0,0,800,600), SColor(255, 255, 255, 255), true);
Driver->draw2DImage(Life, rect<s32>(10,10,10+Player[0].Life,10+20),rect<s32>(0,0,100,20)); Driver->draw2DImage(Life, rect<s32>(410,10,410+Player[1].Life,10+20),rect<s32>(0,0,100,20)); Driver->draw2DImage(Life, rect<s32>(10,310,10+Player[2].Life,310+20),rect<s32>(0,0,100,20)); Driver->draw2DImage(Life, rect<s32>(410,310,410+Player[3].Life,310+20),rect<s32>(0,0,100,20));
Driver->endScene(); Il montre bien le passage d'un Viewport à l'autre, le jeu était une petite démo de FPS à 4 en écran splitté, le but était de la rendre jouable avec la Wiimote (via GlovePIE) pour une soirée ^^ Finalement ça s'est pas fait, mais je suis content de voir que le code peut resservir :p
|
|
Création du message
|
23-04-2008 18:13:08
|
Aranoth
|
Yep, voilà un vieil exemple que j'avais codé à l'arrache dans le temps : while(Device->run()) { Driver->setViewPort(rect<s32>(0,0,WinX,WinY)); Driver->beginScene(true,true,SColor(0,100,100,100));
for(int i=0; i<4; ++i) { Player.Node->setPosition(Player.Cam->getPosition()); Player.Node->setRotation(vector3df(0,Player.Cam->getRotation().Y,0)); }
Smgr->setActiveCamera(Player[0].Cam); Driver->setViewPort(rect<s32>(0,0,WinX/2,WinY/2)); Player[0].Node->setVisible(false); Smgr->drawAll(); Player[0].Node->setVisible(true);
Smgr->setActiveCamera(Player[1].Cam); Driver->setViewPort(rect<s32>(WinX/2,0,WinX,WinY/2)); Player[1].Node->setVisible(false); Smgr->drawAll(); Player[1].Node->setVisible(true);
Smgr->setActiveCamera(Player[2].Cam); Driver->setViewPort(rect<s32>(0,WinY/2,WinX/2,WinY)); Player[2].Node->setVisible(false); Smgr->drawAll(); Player[2].Node->setVisible(true);
Smgr->setActiveCamera(Player[3].Cam); Driver->setViewPort(rect<s32>(WinX/2,WinY/2,WinX,WinY)); Player[3].Node->setVisible(false); Smgr->drawAll(); Player[3].Node->setVisible(true);
Driver->setViewPort(rect<s32>(0,0,WinX,WinY)); Driver->draw2DImage(GUI,position2d<s32>(0,0), rect<s32>(0,0,800,600), &rect<s32>(0,0,800,600), SColor(255, 255, 255, 255), true);
Driver->draw2DImage(Life, rect<s32>(10,10,10+Player[0].Life,10+20),rect<s32>(0,0,100,20)); Driver->draw2DImage(Life, rect<s32>(410,10,410+Player[1].Life,10+20),rect<s32>(0,0,100,20)); Driver->draw2DImage(Life, rect<s32>(10,310,10+Player[2].Life,310+20),rect<s32>(0,0,100,20)); Driver->draw2DImage(Life, rect<s32>(410,310,410+Player[3].Life,310+20),rect<s32>(0,0,100,20));
Driver->endScene(); Il montre bien le passage d'un Viewport à l'autre, le jeu était une petite démo de FPS à 4 en écran splitté, le but était de la rendre jouable avec la Wiimote (via GlovePIE) pour une soirée ^^ Finalement ça s'est pas fait, mais je suis content de voir que le code peut resservir :p
|