@Rafael/ARMO, post #30
@Rafael/ARMO, post #30
@abcdef, post #29
@GumBoy, post #32
@jimiche, post #33
@Minniat, post #1
@rzookol, post #38
@rzookol, post #7
class icon { private: UWORD icontype; // rodzaj ikonki struct BitMap iconbm; // bitmapa ikonki public: icon(); void Create_Icon(UWORD type, struct BitMap bm); void Draw_Icon(int x, int y); UWORD Obtain_Icontype(); }; class map { private: icon map[64][64]; // mapka składająca się z ikonek public: map(); void Generate_Map(int seed); void Load_Map(int file); void Draw_Map(int startx, int starty); icon Obtain_Icon(int x, int y); void Set_Icon(int x, int y, icon icon); }; icon :: icon() { // Konstruktor, tworzy domyślną ikonę } void icon :: Create_Icon(UWORD type, struct BitMap bm) { // akcesor, ustawia typ i bitmapę ikony } void icon :: Draw_Icon(int x, int y) { // Rysuje ikonkę o podanym typie w pozycji x, y } UWORD icon :: Obtain_Icontype() { // akcesor typu ikonki } map :: map() { // konstruktor, tworzy czystą mapę } void map :: Generate_Map(int seed) { // akcesor, generuje mapkę przypisaną danemu numerowi seed } void map :: Load_Map(int file) { // akcesor, wczytuje mapkę z pliku o numerze file } void map :: Draw_Map(int startx, int starty) { // Rysuje mapkę w oknie w bieżącej pozycji } icon map :: Obtain_Icon(int x, int y) { // Akcesor ikony w podanej pozycji } void map :: Set_Icon(int x, int y, icon icon) { // Wstawia ikonę w podanej pozycji }Implementacja jest banalna (oprócz generowania losowego mapy). Rysowanie ikony to po prostu BltBitMapRastPort() z BitMapy ikony na RastPort okna. Bardzo proszę o konstruktywne komentarze. Pytam też czy to dobry pomysł umieszczania tutaj fragmentów kodu - myślę, że lepiej jak będę umieszczał kod na mojej stronie, a tutaj podawał tylko odnośniki.
@GumBoy, post #32
@Rafael/ARMO, post #41
@Minniat, post #40
@MinisterQ, post #43
@Rafael/ARMO, post #45
@Rafael/ARMO, post #44
@Minniat, post #47
@jimiche, post #25
@SzaryWilk, post #49
@Minniat, post #48
class icontype // rodzaj ikony (np. piach, skała itp.) { private: UWORD iconnum; // numer rodzaju ikony struct BitMap iconbm; // bitmapa ikony (do rysowania) public: icontype(); void Create_Icontype(int num, struct BitMap bm); // tworzy nowy rodzaj ikony void Draw_Icontype(int x, int y); // rysuje ikonę w podanej pozycji UWORD Obtain_Iconnum(); // pobiera numer rodzaju ikony }; class icon // ikona (np. element mapy) { private: icontype *type; // wskaźnik do rodzaju ikony public: icon(); void Set_Icontype(icontype *newtype); // ustawia wskaźnik do rodzaju ikony icontype *Obtain_Icontype(); // pobiera wskaźnik do rodzaju ikony };Przykład wykorzystania klas:
void icontest() { icon newicon; // nowa ikonka icontype rock, *newicontype; // skała i typ nowej ikony struct BitMap rockbm; // bitmapa skały rock.Create_Icontype(1, rockbm); // utwórz nowy typ ikony - skała newicon.Set_Icontype(&rock); // ustaw typ nowej ikony na skałę newicontype = newicon.Obtain_Icontype(); // pobierz typ nowej ikony newicontype->Draw_Icontype(0, 0); // narysuj nową ikonę }Implementacja metod jest prosta. Teraz kod przykładowy kompiluje się bez problemów. Pozdrawiam :)
@selur, post #53
@GumBoy, post #46
@selur, post #56
@Minniat, post #57
@Minniat, post #57