Ah d'accord. Je pensais (bien que j'ai lu le tuto mais j'ai du mal le saisir) que cela fonctionnait un peu comme les NSView de l'objective-c.
Mais sinon en faisant ma manip précédemment écrite, j'arrive à afficher une zone de ma vue et en la bougeant j'arrive à afficher le reste.
Est-ce un problème de détourner l'utilisation du sf::View pour arriver à mes fins ?
donc en gros je fais ça
sf::RenderWindow window1(sf::VideoMode(400, 400), "level", sf::Style::Titlebar | sf::Style::Close);
sf::View vue1(sf::FloatRect(0, 0, 800, 400));
vue1.setViewport(sf::FloatRect(-300/400, 0, 2,1));
je mets 2 car 400*2+800 et ça permet d'avoir toute la vue sans redimensionnement
Le -300/400 car 400 = la taille de la fenêtre, 300 = la position que je veux, et je prends l'opposé pour reculé la vue.
En faisant ça, ça ressemble plus au NSView de l'objective-c et j'arrive à faire ce que je veux mais est-ce un problème ? (exemple s'il y a une mise à jour ou si cela peut provoquer quelques fois des erreurs)
Ca marche mais c'est compliqué et ça ne sert à rien : tu as une vue 2x plus large que la fenêtre et tu l'affiches dans un viewport 2x plus large que la fenêtre. Tu ne ferais rien, ça aurait le même effet.
Au final tu veux juste bouger ta vue c'est ça ?
sf::View vue1(sf::FloatRect(-300, 0, 400, 400));
// et c'est tout
Aaah d'accord, je comprends enfin pourquoi cela s'appelle caméra 2d.
Mais une dernière question, est-ce normale de devoir set ma view à chaque modification de celle-ci ?
vue1.move(200,0);
window1.setView(vue1); //ça marche pas sans
Et j'ai pu voir sur d'autre topics que je pourrais avoir plusieurs vues et les superposées.(notamment sur le tuto du site)
Comment est-ce possible si ce ne sont que des caméras ? A moins que je puisse afficher ce que je veux par la caméra en faissant un window.setView(vue1) puis window.draw(monObjet) et ensuite changer de view ?
+ merci de votre aide à vous et à G. :)