Skocz do zawartości

Allegro błąd - "undefined reference to 'buffer'"


Sheriff99

Rekomendowane odpowiedzi

Witam!

 

Otóż mam taki mały(denerwujący problem w moim projekcie). Mam pliki:

 

KeepTower.cpp

#include "KeepTower.h"

extern BITMAP * buffer;
//Konstruktor---------------------------------------------------------------
KeepTower::KeepTower()
{
    tworz();    //Wywolanie funkcji ladujacej bitmape "keep"
    rysuj();    //Wywolanie funkcji wyswietlajacej bitmape "keep" na buforze
}

//Destruktor----------------------------------------------------------------
KeepTower::~KeepTower()
{
    destroy_bitmap(keep);
}

//Funkcja wczytujaca bitmape "keep"-----------------------------------------
void KeepTower::tworz()
{
    keep = load_bmp( "keep.png", default_palette );
    if( !keep )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Blad pliku graficznego!" );
        allegro_exit();
    }
}

//Funkcja wyswietlajaca na bufferze bitmape "keep"--------------------------
void KeepTower::rysuj()
{
    masked_blit( keep, buffer, 0, 0, x, y, keep->w, keep->h );
}

 

KeepTower.h

#ifndef KEEPTOWER_H
#define KEEPTOWER_H
#include "all_headers.h"
#include <allegro.h>

class KeepTower
{
    public:
        int x, y;
        BITMAP * keep = NULL;
        void rysuj();
        void tworz();
        KeepTower();
        virtual ~KeepTower();


    protected:
    private:
};

#endif // KEEPTOWER_H

 

main.cpp

#include <allegro.h>
#include "KeepTower.h"

volatile long speed = 0;

void increment_speed()
{
    speed++;
}
END_OF_FUNCTION( increment_speed );

LOCK_VARIABLE( speed );
LOCK_FUNCTION( increment_speed );

//---------------------------GLOWNY PROGRAM--------------------------------------------
int main()
{
    allegro_init();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT, 800, 600, 0, 0 );
    install_keyboard();
    install_timer();
    install_int_ex( increment_speed, BPS_TO_TIMER( 100 ) );

    BITMAP * buffer = NULL;
    buffer = create_bitmap( 800, 600 );
        if( !buffer )
        {
            set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
            allegro_message( "Blad pliku graficznego!" );
            allegro_exit();
        }

    KeepTower Gracz;
    Gracz.x=100, Gracz.y=100;

while( !key[ KEY_ESC ] )
{
    while( speed > 0 )
    {
        speed--;
    }
   clear_to_color( buffer, makecol( 150, 150, 150 ) );
    blit( buffer, screen, 0, 0, 0, 0, 800, 600 );
}
remove_int( increment_speed );
allegro_exit();

}
END_OF_MAIN();
//---------------------------KONIEC GLOWNEGO PROGRAMU----------------------------------

 

all_headers.h

#ifndef ALL_HEADERS_H
#define ALL_HEADERS_H

#include "KeepTower.h"


//Klasy projektu


#endif // ALL_HEADERS_H_INCLUDED

 

Przy próbie narysowania bitmapy na buforze w funkcji void KeepTower::rysuj w pliku KeepTower.cpp wywala błąd "undefined reference to 'buffer'". Nie wiem co zrobić. Pomóżcie, bo się trochę namęczyłem.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...