eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDavid West: OOP is DeadRe: David West: OOP is Dead
  • Data: 2014-02-18 15:50:54
    Temat: Re: David West: OOP is Dead
    Od: firr <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    #v+
    ////////////////////////////////

    class Pixelbuffer {
    // klasa zawierajaca bufor obrazu.
    };

    /////////////////////////////////////

    class Window {
    private:
    MouseHandler& m;
    KeyboardHandler& k;

    public:
    // wspolne funkcje, istniejace dla kazdego okna

    // dodaje handler do okna
    void addMouseHandler(Handler& h);
    void addKeyboardHandler(Handler& h);
    void draw(Costam& cos);
    };

    ////////////////////////////////////////

    class Blitter {
    void blit(Window& win, Pixelbuffer& buf)
    {
    ///...
    }
    };

    ////////////////////////////

    class MouseHandler: public Handler {
    void onClicked(Slot& callback, Point& position) {
    callback.emit(position);
    }
    };

    /////////////////////////////////

    class Game {
    private:
    Pixelbuffer p;

    Blitter& blit;
    Window& w;

    public:
    Pixelbuffer& getBuffer() { return p; }

    void blit() {
    // dla każdego obiektu w grze, renderuje pixelbuffer dla tego obiektu

    // też może być wprowadzony podział na klasy software/hardware
    rendering
    blit.blit(w, p);
    }

    void run() {
    while(! done) {
    doGame();
    blit();
    }
    }
    };

    /////////////////////----

    int main() {
    Pixelbuffer p;
    Game game(p);
    HardwareBlitter blit; // lub: SoftwareBlitter, QuickBlitter, lub inne
    blittery
    Window gameWindow;

    game.addWindow(gameWindow);
    game.setBlitter(blit);

    MouseHandler m;
    KeyboardHandler k;

    gameWindow.addMouseHandler(m);
    gameWindow.addKeyboardHandler(k);

    m.onClicked([&] (Point& mousePos) {
    game.addSomeObject(mousePos);
    });

    gameWindow.show();
    game.run(); // działa, np. dopóki gameWindow istnieje
    return 0;
    }
    #v-

    wycialem by bylo drobinke prosciej, wiadomo ze mozna rozbudowywac

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: