Hab das mit den Antworten dadrunter gar nicht gesehen gehabt.
Es hatte super funktioniert, aber da die Struktur vom ganzen beschissen war habe ich alles nochmal neu geschrieben und mehr Struktur rein gebracht.
Kriege wieder folgenden Fehler (Zeile 18):
Code
Ausnahme ausgelöst bei 0x0F5C80A6 (sfml-graphics-d-2.dll) in DrugClicker.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xCCCCCCD0.
Benutze aber im Gegensatz zu vorher eine Referenz der Font:
C: .cpp
Button::Button(std::string id, sf::Vector2f pos, sf::Vector2f scale, std::string imagepath, std::string text, sf::Font& font) {
loadTexture(imagepath);
setScaleFactor(scale);
setPosition(pos);
setSprites(3);
calculateSprites();
setTextureRect(1);
getText()->setFont(font);
getText()->setCharacterSize(18);
getText()->setString(text);
getText()->setPosition(
getSprite()->getPosition().x + getSprite()->getGlobalBounds().width * 0.5f - getText()->getGlobalBounds().width * 0.5f,
getSprite()->getPosition().y + ((getSprite()->getLocalBounds().height - getText()->getLocalBounds().height) * 0.5f)
);
}
void Button::Render(sf::RenderWindow* rw) {
rw->draw(*getSprite());
rw->draw(*getText());
}
Geerbte getText funktion:
sf::Text* getText() {
return &mText;
}
Alles anzeigen
Sobald ich die setFont Funktion entferne crasht das Programm nicht mehr, allerdings ist dann auch kein Text zu sehen (ergibt ja auch Sinn).
Die TTF Datei kann auch erfolgreich geladen werden, daran liegt es also schon mal nicht.
Wenn ich mir bei "Render" den String von "getText()" ausgeben lasse stimmt es auch.
Weiß vielleicht jemand woran das liegen kann oder kennt einer eine Möglichkeit das ganze besser zu debuggen?
Danke im voraus.