Bonjour Gorf,
De ce que j'en ai compris (reprend moi Laurent si je me plante), les vues te permettent le déplacement de ta scène, la rotation ainsi que le zoom.
En effet, sur une map mettons de 1600x1200 avec une fenêtre 800x600, tu as une map deux fois plus grande. Certains et c'été le cas en SDL 1.2 (la nouvelle je ne sais honnêtement pas comment elle gère), il fallait alors afficher les 800x600 pixels de ta map et au bon moment affiché les 800x600 autres pixels (en gros hein
).
Là, sur la SFML2 (et 1.6 fait pareil je crois), tu affiches 1600x1200 mais ta fenêtre faisant que 800x600, tu n'auras que cette première partie. Au bon moment, tu te contente de simplement déplacer la vue sur les 800x600 pixels restant.
La fenêtre est en deux parties :
- Rendu théorique
- Rendu pratique
Le rendu théorique correspond à ta map : 1600x1200. Ta fenêtre SFML a cette information de rendu et toi tu y gères ce qui s'y passe quoi qu'il arrive, donc toute ta map est chargée (au contraire de SDL1.2 où tu ne charges que le visuel).
Le rendu pratique, correspond à ce que ta fenêtre affiche : 800x600. C'est donc ce que Laurent nous a appelé la vue. La vue est la partie de la fenêtre qui affiche.
Comme c'est ce qui affiche à l'écran, tu peux aussi faire une rotation ou un zoom de ce qui est affiché, mais derrière tu ne produit aucun calcul pour cela, c'est la vue qui s'en charge toute seule à l'affichage.
Pour exemple, tu as un personnage allant du point A à gauche à B à droite. Tu lui dit donc de se déplacer vers la droite, mais tu demandes à la vue de faire une rotation à 180°.
Visuellement tu auras donc le point B à gauche et A à droite. On se dit alors qu'on doit faire déplacer à gauche donc dans ce cas là et c'est vrai mais UNIQUEMENT avec la SDL1.2.
La tu as utilisé la vue, donc le rendu pratique. Le rendu théorique dit toujours : B est à droite de A, ton code fait donc déplacer à droite.
Le rendu pratique fait alors quoi ? Au moment du déplacement, il dit : "oui mais on m'a fait faire une rotation 180°, donc droite devient gauche", il va donc afficher un déplacement gauche et rejoindre le fameux point B comme prévu.
La comparaison est celle-ci : tu fais un code pour une chose standard, ici déplacement à droite. La vue est ce qui est affiché et ne dépend pas de ton code, les changements visuels à faire ne seront donc pas dépendant de ce que tu as codé derrière mais dépendant des instructions que tu as donné à la vue en question.
J'espère t'avoir un peu plus éclairé.
P.S. : Ma comparaison avec la SDL1.2 est pour mieux expliquer le fait que tu n'as pas à changer ton code comme on pourrait le croire (et serait obligé de faire en SDL1.2 qui ne gère pas les vues), il suffit d'utiliser les vues qui s'occupent de traduire l'ordre donné afin d'afficher visuellement ce que tu as demandé indépendamment de ton code.