Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak projektować klasy?

Ostatnio zmodyfikowano 2014-11-26 19:25
Autor Wiadomość
Mrucz47
Temat założony przez niniejszego użytkownika
Jak projektować klasy?
» 2014-11-26 18:02:50
Jo, póki co pisałem cały czas strukturalnie, jakaś gierka ala mario.
Chciałbym zacząć pisać obiektowo, powiedzmy jakieś mario 2d.
Mógłby ktoś po krótce/ogólnie opisać jak projektować klasy, na co zwracać uwagę itp itd.?
P-121452
Quirinnos
» 2014-11-26 18:23:37
Sam musisz mieć wizję ;) co tu można poradzić, każdy wpadnie na coś innego.
Pisałeś już coś obiektowo? Wiesz o co w tym chodzi?
P-121454
Mrucz47
Temat założony przez niniejszego użytkownika
» 2014-11-26 18:28:31
Ale ciągle ta dręcząca myśl, że przecież na pewno da się to zrobić lepiej :D
Bardzo mało pisałem obiektowo, mniej więcej rozumiem ideę z kursów.
Np klasa postaci w grze 2D (typu mario) co powinna zawierać?
Nie chcę tu całych kodów tylko tak ogólnie:P
P-121455
Quirinnos
» 2014-11-26 18:34:52
No to w sumie też zależy :D, np. od tego w jaki sposób będziesz robił kolizję, grawitację.
Jak chcesz to możesz zobaczyć na moją implementację grawitacji w SFML, tam jest klasa gracza i klasa obsługująca kolizję.
http://quirinnos.pl/kurs-sfml-2-1-8-grawitacja/
Ogólnie dobrze jest jak gracz posiada pole reprezentującą położenie, prędkość, wygląd. Metody rysujące, aktualizujące, etc.
P-121456
akwes
» 2014-11-26 19:25:19
Nauka projektowania wymaga czasu i napisania (szczególnie przepisania) wielkich ilości kodu. O ile talent programistyczny może objawić się wcześniej lub później o tyle dobry architekt pojawia się po prostu później. Projektowanie to (jak już wiele razy podkreślałem na tym forum) proces heurystyczny, można podać kilka ogólnych zasad czym się kierować, ale nigdy gotowego przepisu jak coś zaprojektować aby było dobre.

Projektowanie klas to ciężka sprawa. Inaczej projektujemy klasy wewnętrzne biblioteki, inaczej takie, z których będzie korzystał klient a przy projektowaniu klas działających współbieżnie sam interfejs jest bardzo ważny bo może powodować sytuacje wyścigów. Możesz poczytać listę artykułów o projektowaniu interfejsu klasy std::stack tak aby był bezpieczny na wyjątki o czym napisał w jednej ze swoich książek Herb Sutter (a właściwie przepisane artykuły z grupy dyskusyjnej).

Jaka rada? Pisać dużo, dużo kodu. Patrzeć co się nie sprawdza i po zlokalizowaniu takich miejsc wywalić je i napisać na nowo.
P-121465
« 1 »
  Strona 1 z 1