[SDL/C++]Problem mit Sprite-Klasse.



  • Hallo.
    Ich habe mir mal eine minisprite klasse geschrieben.
    wenn ich nur ein bild anzeigen will funktioniert es auch.
    aber wenn ich 2 oder 3 anzeigen will dann funktioniert es nicht.
    ich poste mal den code:

    #ifndef _SPRITE_H
    #define _SPRITE_H
    
    class Sprite
    {
    public: 
    Sprite(char *filename);
    void Draw(SDL_Surface *target);
    private:
    SDL_Surface *image;
    };
    

    nun Sprite.cpp

    #include "Sprite.h"
    
    Sprite::Sprite(char *filename)
    {
    image = SDL_LoadBMP(filename);
    //muss noch fehler überprüfen...
    }
    void Sprite::Draw(SDL_Surface *target)
    {
    SDL_BlitSurface(image, NULL, target, NULL);
    }
    

    nun das programm:

    //includes...
    Sprite* bild1 = new Sprite("bild.bmp");
    Sprite* bild2 = new Sprite("bildd.bmp");
    //...
    bild1->Draw(screen);
    bild2->Draw(screen);
    //...
    delete bild1;
    delete bild2;
    

    so klasse ist noch lange nicht fertig aber zum testen reicht es.
    lässt sich auch kompileren.
    wenn ich es aber starte kommt
    **
    Speicherzugriffehler
    **
    bin nicht gerade ein c++"profi" sondern noch eher anfänger.
    MFG Vielen Dank



  • warum benutzt du pointer für den klassenzugriff?



  • im buch steht wenn ich es so mache:
    Sprite meinbild;
    dann kann ich nur in einem block arbeiten. (ich weis nicht wie ich sagen soll)
    also:

    int main()
    {
    ///...
    {
    Sprite blabla;
    blabla.machwas();
    }
    blabla.tudas();//geht nicht.
    }
    

    mfg



  • Wie wäre es denn mit dem Debugger?

    Bye, TGGC \-/



  • problem gelöst.
    MFG


Anmelden zum Antworten