[c++] allegro - tworzenie bitmap

0

Mój problem jest dość złożony, i nie wiem czy uda mi się go sensownie przedstawić, ale:

Mam plik system.cpp, w którym jest funkcję install która włącza tryb graficzny, tworzy bimapy i ładuje pliki graficzne, oraz funkcję draw_game która wyświetla "wszystko" na ekran.

W pliku interface.cpp mam taką klasę:

class Twindow {
public:
    int x,y;
    int w,h;
    int wcount,hcount;
    BITMAP *face;
    Twindow (int gx, int gy, int gw, int gh);
    ~Twindow ();
    void make ();
    void draw ();
};

/* konstruktor okna */
Twindow::Twindow (int gx, int gy, int gw, int gh)
{
     x = gx;
     y = gy;
     w = gw;
     h = gh;

     /* to przez tą linikę program sie wywala */
     if(!(face = create_bitmap(w,h)))
        error(E_MEMORY);

     make ();
}

/* destruktor okna */
Twindow::~Twindow ()
{
    destroy_bitmap (face);
}

/* rysuje okno */
void Twindow::make ()
{
     /* CIAH! Mniejsza o szczegóły, w tej funkcji tworze bitmapę ?face? */
}

void Twindow::draw ()
{
    blit(face,buffer,0,0,x,y,w,h);
}

Wszystko jest napisane poprawnie, aby stworzyć okno muszę użyć kodu

Twindow MainPanel (0,396,SCR_W,SCR_H - 396);

Problem polega na tym, że bitmapa ?face? z klasy Twindow jest tworzona zanim zostanie włączony tryb graficzny w funkcji install z pliku system.cpp, przez co program kompiluje się poprawnie, ale przy próbie uruchomienia ?krzaczy się?. Jeżeli stworze obiekt w funkcji install, to błędu nie będzie, ale nie będę mógł go użyć w funkcji draw_game.... jak z tego wybrnąć? :|

0

hmm, to czemu nie dołączysz pliku z install do pliku z draw_game ??

0

hmm, to czemu nie dołączysz pliku z install do pliku z draw_game ??

Jest w tym samym pliku:

Mam plik system.cpp, w którym jest funkcję install która włącza tryb graficzny, tworzy bimapy i ładuje pliki graficzne, oraz funkcję draw_game która wyświetla "wszystko" na ekran.

Ale jak stworze obiekt w funkcji install to nie widać go w innych funkcjach, a jak stworze go poza funkcją install to będą krzaki....

1 użytkowników online, w tym zalogowanych: 0, gości: 1