Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Afficher 2 view sur la même fenêtre  (Lu 2654 fois)

0 Membres et 1 Invité sur ce sujet

Clemshu

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Afficher 2 view sur la même fenêtre
« le: Juin 10, 2012, 08:53:13 pm »
Bonsoir,

Etant actuellement en train de développer un jeu de voiture en vue de dessus pour un projet scolaire, j'aimerais savoir si il était possible d'afficher 2 view sur une même fenêtre.
Je cherche à faire cela pour avoir un mode 2 joueurs avec écran splité.

Merci de l'aide.

Cordialement.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Afficher 2 view sur la même fenêtre
« Réponse #1 le: Juin 10, 2012, 10:09:29 pm »
Avec SFML 2 c'est très simple, il suffit de jouer avec le viewport.
Laurent Gomila - SFML developer

Clemshu

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : Afficher 2 view sur la même fenêtre
« Réponse #2 le: Juin 10, 2012, 10:38:05 pm »
Ah en effet après lecture de la documentation cela semble plutôt simple.
J'essaie d'utiliser ça demain.

Merci beaucoup pour votre travail et votre aide !

Clemshu

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : Afficher 2 view sur la même fenêtre
« Réponse #3 le: Juin 11, 2012, 12:11:50 pm »
Bonjour,

J'ai quelque difficulté à utiliser les viewport.
Je joint un screenshot pour montrer le problème.
Le problème est donc que la partie haute de la fenêtre, le premier viewport, est aplati alors que la deuxième partie de la fenêtre ne l'est pas mais la voiture n'est pas centré. Je ne comprend pas vraiment pour cela réagi comme ca.

Voila le code ou j'affiche les viewport :

//Si deux joueur je définis les 2 viewport
if (nbrJoueur == 2) {
        view1.setViewport(sf::FloatRect(0.f, 0.f, 1.f, 0.5f));
        view2.setViewport(sf::FloatRect(0.f, 0.5f, 1.f, 1.f));
    }
/*
Code
*/

if (nbrJoueur == 1) {
            imageFond.afficher(fenetre);
           
            circuit.afficherJouer(fenetre);
           
            view1.setCenter(voitureJoueur1.getCoord());
            fenetre->setView(view1);
           
            voitureJoueur1.afficher(fenetre);
        } else {
//Si deux joueur j'affiche dans les deux viewport
            view1.setCenter(voitureJoueur1.getCoord());
            fenetre->setView(view1);
            imageFond.afficher(fenetre);
            circuit.afficherJouer(fenetre);
            voitureJoueur1.afficher(fenetre);
            voitureJoueur2.afficher(fenetre);
           
            view2.setCenter(voitureJoueur2.getCoord());
            fenetre->setView(view2);
            imageFond.afficher(fenetre);
            circuit.afficherJouer(fenetre);
            voitureJoueur1.afficher(fenetre);
            voitureJoueur2.afficher(fenetre);
        }
 


[attachment deleted by admin]

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Afficher 2 view sur la même fenêtre
« Réponse #4 le: Juin 11, 2012, 12:27:32 pm »
Vue 1 : tu tentes de faire tenir la taille totale dans la moitié de la fenêtre, c'est donc forcément "squeezé". Il faut aussi que tu ajustes la taille de la vue en conséquence.

Vue 2 : les deux derniers paramètres de FloatRect sont la taille, pas le coin bas-droit.
Laurent Gomila - SFML developer

Clemshu

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : Afficher 2 view sur la même fenêtre
« Réponse #5 le: Juin 11, 2012, 12:43:24 pm »
Ah j'avais mal compris les paramètre de FloatRect !

Maintenant ça fonctionne.

Merci beaucoup pour l'aide j'ai un super mode 2 joueur maintenant.  :)