Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: unitedelite le Décembre 15, 2013, 11:52:50 am

Titre: [2.1] viewport qui prend toute la fenetre
Posté par: unitedelite le Décembre 15, 2013, 11:52:50 am
salut a tous,

j'ai actuellement un problème avec les viewport, j'essaye de faire une sorte de mini map mais elle prend l’intégralité de l’écran même avec l'utilisation des viewport

voici ou je creer mes vues
        View view(FloatRect(400,300,800,600));
        View boatView;
        view.setViewport(sf::FloatRect(0, 0, 1, 1));
        boatView.setViewport(sf::FloatRect(0.25f, 0.25, 0.5f, 0.5f));


et l'affichage de mes scene :
                window.setView(view);
                window.clear(Color(72,177,255));
                window.draw(map);

                for(unsigned int i=0;i<boatList.size();i++)
                {
                        if(!boatList[i]->destinationAtteinte)
                        {
                                boatList[i]->update();
                                window.draw(boatList[i]->boat);

                                if(zoom >= 3)
                                {
                                        RectangleShape rectangle;
                                        rectangle.setFillColor(Color::Red);
                                        rectangle.setSize(Vector2f(50,50));
                                        rectangle.setPosition(boatList[i]->boat.getPosition());

                                        window.draw(rectangle);
                                }
                        }
                        else
                        {
                                boatList.erase(boatList.begin()+i);
                        }
                }
                window.setView(boatView);
                window.clear(Color(255,0,0));
                window.draw(boat.boat);
                window.display();

La minimap (que j'efface avec un background rouge pour pouvoir voir quel vue est dessiné) prend tout l’écran cachant ainsi complétement ma vue principale (le bateau est bien affiché sur la deuxième vue)


merci pour toute aide ^^
Titre: Re : [2.1] viewport qui prend toute la fenetre
Posté par: Laurent le Décembre 15, 2013, 06:02:47 pm
Un code complet minimal, plutôt que des morceaux incomplets de ton jeu, ce serait plus sympa pour debugger ;)
Titre: Re : [2.1] viewport qui prend toute la fenetre
Posté par: unitedelite le Décembre 16, 2013, 11:38:17 am
la je fait des tests pour mon prochain jeu donc tout est dans le main :

http://pastebin.com/d6vFrNHH

le code est donc bordélique car je prend des raccourci pour faire les test ,le but de ce programme de test est d'essayer de faire un système d'ia de commerce, de scrolling + zoom ainsi que d'un écran qui s'affiche avec une vue zoomé sur le bateau que survol la souris ( d’où le besoin d'un viewPort)  avant de l’intégrer dans mon prochain jeu qui lui sera bien mieux codé (plus rien dans le main donc =° )
Titre: Re : [2.1] viewport qui prend toute la fenetre
Posté par: G. le Décembre 16, 2013, 11:53:38 am
Citation de: http://www.sfml-dev.org/documentation/2.1/classsf_1_1RenderTarget.php#a6bb6f0ba348f2b1e2f46114aeaf60f26
void sf::RenderTarget::clear(const Color& color = Color(0, 0, 0, 255))   
Clear the entire target with a single color.
Quand tu fais window.clear ça clear toute la fenêtre quoi.
Titre: Re : [2.1] viewport qui prend toute la fenetre
Posté par: unitedelite le Décembre 16, 2013, 12:21:30 pm
ah effectivement, je pensais que ça effaçais seulement la vue courante

merci pour ton aide ^^

voila ce que ça donne quand je survole un navire :
http://img4.hostingpics.net/pics/159309Sanstitre.png

me reste plus qu'a développer l'ia des villes et je pense pouvoir commencer le jeu ^^