Sprites drehen (SDL)
-
Erstmal danke
ICh habs jetzt folgendermaßen versucht:
SDL_Surface *m_pSurfaceRotation; m_pSurfaceRotation = m_pSpritePlayer->GetSurface ();
der fehler bleibt derselbe
Was mache ich falsch?
-
Bei dem Parameter, sowie bei dem Funktionsdatentyp handelt es sich um einen Zeiger auf SDL_Surface. m_pSpritePlayer->GetSurface() << returnt nur eine Referenz. Macksu so:
else if(g_pFramework->KeyDown (SDLK_a)) { m_pSpriteplayer = rotozoomSurface(&m_pSpritePlayer->GetSurface(), 1.0, 90.0, 1); }
Beachte das der 2. und 3. Parameter einen double erwartet...
-
Erstmal auch ein großes Danke an dich, aber es kommen dieselben Fehler
vllt. liegt es an GetSurface?
SDL_Surface GetSurface () {return m_pImage;}
Weiß nichtmehr weiter Oo
-
Oh, tut mir leid... >_< not seen.
Ist es denn nicht möglich, GetSurface() in einen Zeiger auf SDL_Surface zu verwandeln? Dann würden sich alle Probleme lösen... bevor du da mit void*-Adressen rumpfuschen musst
-
m_pImage ist wohl ein Zeiger (auf eine SDL_Surface), wenns schon pImage heißt.
Ursache: Konvertierung von 'SDL_Surface *' in 'const SDL_Surface' nicht möglich
pImage ist ein SDL_Surface*, du versuchst aber eine SDL_Surface zurückzugeben.
Der compiler versucht jetzt, das zu konvertieren, kann er natürlich nicht, und gibt die Fehlermeldung aus.Also:
SDL_Surface* GetSurface () { return m_pImage; } //statt SDL_Surface GetSurface () { return m_pImage; }
-
Uchuujinsan schrieb:
...
Den Tip habe ich ihm doch bereits gegeben...
-
Ok Ich bin dank euch schonmal viel weiter gekommen
(Ich bekomme nur noch einen Fehler ausgegeben ;))
error C2102: '&' erwartet L-Wert
m_pSpritePlayer = rotozoomSurface(&m_pSpritePlayer->GetSurface (), 1.0, 90.0, 1);
hää?
-
Nee, den Referenzoperator (&) brauchste ja nimma... deine (mem) fnc ist ja bereits ein Zeiger...
-
Wo siehst du da bitte einen Referenzoperator? Ich sehe da bloss einen Adressoperator.
-
Kóyaánasqatsi schrieb:
Uchuujinsan schrieb:
...
Den Tip habe ich ihm doch bereits gegeben...
Naja, ich dachte nicht das "Ist es denn nicht möglich, GetSurface() in einen Zeiger auf SDL_Surface zu verwandeln? " ironisch gemeint war, weil es ist nicht nur möglich, sondern es ist die einzige korrekte Lösung zu einem rein syntaktischem Problem
Btw, eine Variable oder ein Rückgabewert mit SDL_Surface statt SDL_Surface* dürfte eigentlich immer und ausnahmslos falsch sein - SDL_Surface ist ein C-struct, keine C++-Klasse.
Oder kennt jemand tatsächlich ne Möglichkeit wo das ansatzweise Sinn machen könnte...?
-
hustbaer schrieb:
Wo siehst du da bitte einen Referenzoperator? Ich sehe da bloss einen Adressoperator.
Ja du king, sorry für den Fehler
-
Kóyaánasqatsi schrieb:
hustbaer schrieb:
Wo siehst du da bitte einen Referenzoperator? Ich sehe da bloss einen Adressoperator.
Ja du king, sorry für den Fehler
Schreib halt einfach "&" wenn du nicht weisst wie das Ding an der Stelle heisst.
Du King.
-
Ja Maus, habe mich doch entschuldigt, brauchst mir ja nüt gleich innen Zeh beissen
-
och nee jetzt kommt beim verknüpfen diese schei*e mit den unaufgelösten externen Verweisen Oo
damit kann ich gar nichts anfangen
`Verweis auf nicht aufgelöstes externes Symbol "_rotozoomSurface" in Funktion ""private: void __thiscall CPlayer::ProcessMoving(void)" (?ProcessMoving@CPlayer@@AAEXXZ)".fatal error LNK1120: 1 nicht aufgelöste externe Verweise.`
-
Kóyaánasqatsi schrieb:
Ja Maus, habe mich doch entschuldigt, brauchst mir ja nüt gleich innen Zeh beissen
Halt einfach's Maul Quasti!
-
@Red Joe
Das ist nur ein kleiner Linker-Fehler, zeig mal deine Klassendatei (h und cpp).@hustbaer
Wallum bittu so pöse tu mir?