Historique des modifications - Message

Message #3853

Sujet: multi screen


Type Date Auteur Contenu
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


Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
151 invités en ligne
membre en ligne: -
RSS Feed