Table of Contents

Ecran Splité

Deux fonctions pour Activer/Désactiver le Split-écran, qui est le fait de diviser un écran en plusieurs sous-écrans. Généralement, cette fonction est utilisée pour montrer, dans les jeux multijoueurs sur une seule machine, les différentes vues des différents joueurs.

Le code

/*!
* \brief Active le Split
* \param Window : Fenetre courante
* \param Zone : Zone de dessin dans la fenêtre
*/
inline void SplitOn(const sf::RenderWindow& Window, const sf::Rect<int>& Zone)
{
    glEnable (GL_SCISSOR_TEST);
    glScissor(Zone.Left, Window.GetHeight() - Zone.Bottom, Zone.GetWidth(),  Zone.GetHeight());
}
 
/*!
* \brief Desactive de Split (ScissorTest)
*/
inline void SplitOff()
{
    glDisable (GL_SCISSOR_TEST);
}

Utilisation

int main()
{
 
    sf::RenderWindow Window(sf::VideoMode(800, 600, 32), "Test");
 
    sf::Sprite Test;
    Test.Resize(40, 40);
 
    sf::Rect<int> Zone(300, 200, 600, 400);
 
    // La boucle habituelle
    sf::Event Event;
    bool isRunning = true;
    while (isRunning)
    {
        while (Window.GetEvent(Event))
        {
            switch(Event.Type)
            {
                case sf::Event::Closed:
                isRunning = false;
                break;
 
                case sf::Event::KeyReleased:
                switch(Event.Key.Code)
                {
                    case sf::Key::Escape:
                    isRunning = false;
                    break;
                }
 
                break;
            }
        }
 
        SplitOn(Window, Zone);
 
        for (int y=0; y<10; y++)
        {
             for(int x=0; x<10; x++)
             {
                Test.SetPosition(x*50 + 150, y*50 + 50);
                Window.Draw(Test);
             }
         }
 
         SplitOff();
 
        Window.Display();
    }
 
    return EXIT_SUCCESS;
}
 
fr/sources/ecran_splitte.txt · Last modified: 2008/05/17 18:31 by alex1992
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki