SFML Frage zu Resize kombiniert mit SetSubRect



  • Joa, mein Titel nennt schon mein problem
    Die Methode CSprite::Render (float frameNr) tut seit dem ich mehrere Auflösungen eingeführt habe nicht mehr das, was sie tun soll 😞

    void CSprite::Render(float fFrameNumber)
    {
    	Update();
    	// Ausschnitt der aktuellen Animationsphase berechnen
    
    	// Spalte berechnen
    	int Column = static_cast<int>(fFrameNumber)%iNumFramesX;
    
    	// Zeile berechnen
    	int Row = static_cast<int>(fFrameNumber)/iNumFramesX;
    
    	Sprite.Resize(Image.GetWidth() * g_pFramework->get_AFaktor(), Image.GetHeight() * g_pFramework->get_AFaktor());
    	Sprite.SetSubRect(sf::IntRect(Column * iFrameWidth, Row * iFrameHeigt, (Column + 1) * iFrameWidth, (Row + 1) * iFrameHeigt));
    	g_pFramework->Draw(Sprite);
    }
    

    Die methode g_pFramework->get_AFaktor() gibt mir den Faktor zurück, mit dem ich die aktuelle Größe berrechnen kann ( maxAuflösung/momentaneAuflösung ).
    iFramewWidth und Heigt wurden schon "verkleinert" mit get_AFaktor.
    Nachdem ich es zeichen lasse kommt aber etwas raus, dass ich nicht beschreiben kann (erst nix und wenn ich über die Position fahre wo er sein müsste (da ändert sich der Frame) kommt ein Übergrößertes Teilstück des Buttons zum Vorrschein.

    Danke für Hilfe
    Niko



  • Is die Frage bzw. der Code unverständlich?
    Oder weiß es einfach keiner?



  • greece57 schrieb:

    Is die Frage bzw. der Code unverständlich?

    Du musst zugeben, dass "Nachdem ich es zeichen lasse kommt aber etwas raus, dass ich nicht beschreiben kann" zu wünschen übrig lässt. 😉

    Warum lässt du dir nicht die Resulate der Zwischenberechnungen ausgeben und vergleichst sie mit deinen Erwartungen?



  • Guter Tipp danke!
    Zu dem Zeichen
    Nunja ich habe eine bildliche Ausgabe in einem Fenster
    Bevor der Button angewählt ist (also beim Framenr 0) ist er nicht zu sehen
    Wenn ich mit der Maus über seinem Bereich bin, dann sieht man plötlich einen kleinen oberen eckteil vom vollkommen übergroßen (also nicht resizten) button.
    Das Teil was man sieht ist ungefähr genau so groß wie das Subrec sein dürfte
    -> Es wurde nicht resized
    -> Was soll ich tun?^^



  • Problem Gelöst 😃
    Falsche Parameter übergabe...^^
    Denkfehler meinerseits
    Danke fürs lesen!


Anmelden zum Antworten