sfml -> View



  • Hallo.

    ich verstehe nicht ganz das mit sf::View. Was wird mit "Center" und "HalfSize" gemeicht und was sind das für Werte? X, Y oder Breite und Höhe?

    sf::Vector2f Center(1000, 1000);
    sf::Vector2f HalfSize(400, 300);
    sf::View View1(Center, HalfSize);
    


  • Keine Ahnung wieso der Typ das so anwendet, vll. macht es ihm paar Berechnungen Performancesparender. Half-Size benutzt er dann für Berechnungen des Viewports.

    Center ist einfach der Mittelpunkt deiner "Kamera" und Half-Size ist der x und y Abstand, die dein "Blickfeldrand" vom Mittelpunkt zum jeweiligen Rand hat. Es ist wichtig, dass du hier "Fensterrand" mit "Blickfeldrand" nicht verwechselst, denn das sind 2 Unterschiedliche Dinge. In deinem Fall also befindet sich der Mittelpunkt bei (1000/1000) und deine "Guggfläche" hat die Breite und Höhe (800/600) [400 von der mitte nach links und rechts, sowie 300 von der mitte nach oben und unten].

    Wenn du jetzt ne Fenstergröße von 800x600 Pixeln hast und z.B. ne Halfsize von (400/400) nimmst, dann führt das dazu, dass dein Bild ein wenig gestreckt wird. Wenn du als Halfsize (800/600) nimmst bewirkt das, dass es so aussieht als wärst du um den Faktor 2 nach draußen gezoomt, d.h. alles wird kleiner, allerdings hat die View Klasse soweit ich weiss eigene Zoomfunktionen. i.d.R. gibst du deshalb als Halfsize einfach deine Fenstergröße / 2 bei den beiden Koordinaten an.

    Alle Angaben ohne Gewähr, müsste ich jetzt tatsächlich ausprobieren, damit ich weiss, ob das so richtig ist, da ich auf diese Weise noch nie versucht hab, das Bild zu strecken / stauchen, aber es erscheint mir als das Logischste.


Log in to reply