Vector in SFML



  • Hallo zusammen,
    ich bin an meinen ersten graphischen Ausgaben mit SFML und versuche mich grade an Snake.

    Ich hab einen Vector, welcher Elemente der Klasse "Segment" speichert. Dieser beinhaltet ein sf::Rectangle welchem ich neue Koordinaten zuweisen will. Dies funktioniert bei manueller Eingabe einer Zahl, z.B. sf::Vector2f(250,250) wunderbar, nicht jedoch wenn ich die Werte durch einen Funktionsaufruf zuweisen will:

    Snakehead.set_last_position(Snakehead.get_position());	// aktuelle Position wird die alte Position
    		Snakehead.set_position(sf::Vector2f(Snakehead.get_position().x, Snakehead.get_position().y - pixel));	// neue Position setzen
    
    		move_body();
    
    //
    
    
    void Game::move_body()
    {
    
    
    	while(Snakebody.size() == 1)
    	{
    		
    		Snakebody[0].set_position(Snakehead.get_last_position());   // Hier scheint der Fehler aufzutreten
    		break;
    	}
    }
    

    Hat jemand eine Idee wieso die Zuweisung nicht funktioniert? Die Segmente werden erzeugt und erscheinen an den gewünschten stellen solange sie keine neuen Positionswerte zugewiesen bekommen.

    Über eure Hilfe wäre ich dankbar.



  • get_last_position ist doch die alte Position. Warum sollte etwas passieren?



  • Der Schwanz der Schlange folgt dem Kopf. Somit muss die alte Position des Kopfes die neue Position des ersten Körpersegments werden?!


Anmelden zum Antworten