Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 |
// Verkettete Zuweisung Klasse1 = Klasse2 = Klasse3; |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »SaRu« (27.08.2010, 18:48)
C-/C++-Quelltext |
|
1 2 3 4 5 6 |
// Funktionsaufruf ggf. mit Fehlermeldung if(pSpriteIntro_Text->SetColorKey(205, 179, 139) < 0) { // Fehlermeldung cout << "Fehler: " << SDL_GetError() << endl; } |
Hey,
die SDL Wiki verrät dir über den Rückgabewert der Funktion SDL_SetColorKey() folgendes: "Returns 0 on success, or -1 if the surface is not valid; call SDL_GetError() for more information."
Bitte mach das auch mal.
C-/C++-Quelltext
1 2 3 4 5 6 // Funktionsaufruf ggf. mit Fehlermeldung if(pSpriteIntro_Text->SetColorKey(205, 179, 139) < 0) { // Fehlermeldung cout << "Fehler: " << SDL_GetError() << endl; }
Das solltest du versuchen nach Möglichkeit immer zu machen.
Im Übrigen heißt die Funktion SDL_SetColorKey() und nicht SDL_SetColourKey(). Kein britisches Englisch.
Gruß
SaRu_
C-/C++-Quelltext |
|
1 2 3 4 5 6 |
//Funktion zum definieren des Colour - Keys void CSprite::SetColourKey(int R, int G, int B) { if(SDL_SetColorKey(m_pImage,SDL_SRCCOLORKEY,SDL_MapRGB(m_pImage->format,R,G,B)) < 0) cout << "Fehler beim setzten des Colour - Keys!\nFehler: " << SDL_GetError() << endl; } |
Das dacht ich mir schon, hab nur vorsichtshalber das erwähnt, nich das du versehentlich die SDL Funktion auch so geschrieben hast. Aber dann würde ja der Kompiler meckern.... naja egal!Das mit Colour ist in der Funktion von mir
C-/C++-Quelltext |
|
1 2 |
CSprite *pSpriteIntro_Text = new CSprite; pSpriteIntro_Text -> SetColourKey(205,179,139); |
Kannst du mal den Funktionsaufruf direkt nach dem anlegen des Objekts tätigen?
C-/C++-Quelltext
1 2 CSprite *pSpriteIntro_Text = new CSprite; pSpriteIntro_Text -> SetColourKey(205,179,139);
C-/C++-Quelltext |
|
1 2 3 4 |
CSprite *pSpriteIntro_Text = new CSprite; //pSpriteIntro_Text = LoadStorry(ID_Storry); //Storry Datei laden pSpriteIntro_Text -> Load("Data/Emphasis/Storry/Storry_2.Emphasis"); pSpriteIntro_Text -> SetColourKey(205,179,139); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 |
//Funktion zum Laden der Storry CSprite * CGame::LoadStorry(const int &ID_Storry) { CSprite *pTempSprite = new CSprite; //Temporäres CSprite für den Text if(ID_Storry == 1) pTempSprite->Load("Data/Emphasis/Storry/Storry_1.Emphasis"); else if(ID_Storry == 2) pTempSprite->Load("Data/Emphasis/Storry/Storry_2.Emphasis"); return pTempSprite; } |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Ombalat« (27.08.2010, 22:27)
Guten Abend Ombalat,.) Wieso funktioniert es so, und nicht so wie vorher?
.) Was passiert jetzt nach dem return mit meiner Variable? Ich finde, das riecht verdammt nach nen Memory - Leak!
C-/C++-Quelltext |
|
1 2 3 |
CSprite SpriteIntro_Text; SpriteIntro_text.Load(...); ... |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Mit Heap (funkt): //Funktion zum Laden der Storry CSprite * CGame::LoadStorry(const int &ID_Storry) { CSprite *pTempSprite = new CSprite; //Temporäres CSprite für den Text if(ID_Storry == 1) pTempSprite->Load("Data/Emphasis/Storry/Storry_1.Emphasis"); else if(ID_Storry == 2) pTempSprite->Load("Data/Emphasis/Storry/Storry_2.Emphasis"); return pTempSprite; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
Mit Stackt (funkt nicht): CSprite * CGame::LoadStorry(const int &ID_Storry) { CSprite TempSprite; //Temporäres CSprite für den Text if(ID_Storry == 1) TempSprite.Load("Data/Emphasis/Storry/Storry_1.Emphasis"); else if(ID_Storry == 2) TempSprite.Load("Data/Emphasis/Storry/Storry_2.Emphasis"); return &TempSprite; } |
Werbeanzeige