Cześć,
#ifndef STATKI_POLE_H
#define STATKI_POLE_H
#include "plik_naglowkowy.h"
//#include <allegro5/allegro_primitives.h>
class pole
{
private:
static int rozmiar;
static ALLEGRO_BITMAP * pole_statek;
static ALLEGRO_BITMAP * pole_odkryte;
static ALLEGRO_BITMAP * pole_zakryte;
bool wartosc; // 0 - nie-statek, 1 - statek
bool odkrycie; // 0 - zakryty 1 - odkryty
int poz_x;
int poz_y;
public:
static void generuj_bitmapy();
void wyswietl();
void odkryj();
void zakryj();
pole(int px, int py);
};
#endif //STATKI_POLE_H
#include <allegro5/allegro.h>
#include <allegro5/allegro_primitives.h>
#include "pole.h"
void pole::wyswietl()
{
rozmiar++;
al_draw_bitmap(pole_statek, poz_x, poz_y, 0);
}
mam klasę o nazwie pole.
Każdy obiekt pola posiada swoje położenie na ekranie.
Klasa pole zawiera zmienną statyczną - bitmapę. Jest to zmienna statyczna, dlatego żeby nie kopiować tej samej bitmapy dla każdego obiektu typu pole. Klasa pole zawiera też zmienną statyczną rozmiar (wszystkie zmienne są private).
W metodzie nie-statycznej próbuje wyświetlić tą bitmapę, ale otrzymuje komunikat undefined reference to pole::pole_statek. Co ciekawe instrukcja rozmiar++ działa (w tej samej metodzie).
Zależy mi na tym żeby mieć tą bitmapę jako statyczną i na tym żeby była metoda wyświetl() (nie musi być statyczna jeśli można inaczej). Jak to zrobić? :)