Autor Wątek: Pierwsza pseudo gra [Punkcior] :D  (Przeczytany 1961 razy)

Offline Xiv4

  • Użytkownik

# Listopad 06, 2012, 00:00:40
Witajcie! To moja pierwsza taka 'produkcja' w temat programowania wkręciłem się niedawno, nie jestem zaawansowany ale cały czas się uczę, zanim podjąłem jakiekolwiek kroki w tę stronę czytałem na temat c++ oraz bibliotek graficznych.

Postanowiłem że  zacznę uczyć się c++ razem z sfml i tak też zrobiłem. hehe

A tutaj moje pierwsze dziecko, które zrobiłem w trakcie nauki.

http://www.speedyshare.com/6cmcN/Punkcior.rar

Załączam też projekt + pliki źródłowe.
http://www.speedyshare.com/e9XAT/Projekt-Source.rar

Niestety nie pisałem tego obiektowo, bo tak owej rzeczy jeszcze nie potrafię ale mam zamiar do piątku zrobić jeszcze statystyki w pliku .txt + pozamykać to wszystko w klasy.

Jeśli ma ktoś dla mnie jakieś uwagi / rady chętnie przyjmę ;)

« Ostatnia zmiana: Listopad 06, 2012, 00:02:20 wysłana przez Xiv4 »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Santor

  • Użytkownik

# Listopad 06, 2012, 13:33:42
Swoje projekty możesz umieszczać na warsztat.gd , tam właśnie wszyscy zamieszczają swoje dzieła i poddają się krytyce :)

Offline Xiv4

  • Użytkownik

  • +1
# Listopad 06, 2012, 17:52:45
ok dzieki, wielkie, wybaczcie za mój błąd, można usunąć ;)

Offline Xirdus

  • Redaktor

# Listopad 06, 2012, 18:58:47
Nie no, wątek jak najbardziej ma prawo zostać. A nuż ktoś będzie chciał zrecenzować kod - forum jest na to dużo lepszym miejscem niż komentarze pod projektem.

Offline Estivo

  • Użytkownik
    • Blog

# Listopad 06, 2012, 23:21:51
        if(pierwszy)
        {
            boxx.SetPosition(xiva::random(55, 665), xiva::random(55, 425));
            boxx2.SetPosition(xiva::random(55, 665), xiva::random(55, 425));
            boxx3.SetPosition(xiva::random(55, 665), xiva::random(55, 425));
        }
        pierwszy = false;

Wywal to z pętli i zmniejsz do
            boxx.SetPosition(xiva::random(55, 665), xiva::random(55, 425));
            boxx2.SetPosition(xiva::random(55, 665), xiva::random(55, 425));
            boxx3.SetPosition(xiva::random(55, 665), xiva::random(55, 425));

Poza tym xiva jest twojego autorstwa? Nie zagłębiałem się w jej kod. Trochę chaotycznie napisane i mało komentarzy. Mogłeś się postarać udostępniając. Co do kodu. Wygląda na wystarczająco szybki (mógłbyś dopisać ten FPS dla czystej ciekawości ;) Ogólnie mówiąc, gratuluje ukończenia ;)

@Edit co do wywalania zauważyłem, że zmienna pierwszy w menu przyjmuje true więc przepraszam.

Offline krecik88

  • Użytkownik

# Listopad 07, 2012, 00:08:21
Na w8 64 bit nie startuje :P

Offline Estivo

  • Użytkownik
    • Blog

# Listopad 07, 2012, 17:14:31
Zauważyłem, że pisane w SFML 1.6. Przepisze Ci to na 2.0 RC ;) oraz wpisze kilka rzeczy w klasy.

Offline Frondeus

  • Użytkownik

# Listopad 07, 2012, 19:43:59
Jeśli nie jest to potrzebne to nie musisz zamykać wszystko w klasy :) W szczególności w amatorskim projekcie gdzie nikt Ci nie będzie zaglądać w kod.
Jeśli piszesz sam to jedna z opcji (Jest ich więcej i niekoniecznie musisz polubić moja :) ) jest:
*Pisz szybko i wygodnie a niekoniecznie ładnie! (Globalne nie są koniecznie be jeśli dzięki temu sam piszesz szybciej)
*Gdy się zrobi burdel w kodzie zrób backup i zacznij refactoring. Po skończonym refactoringu patrz na pierwsza gwiazdkę.

Osobiście mi ta metoda działa bez zarzutu. Wcześniej nie raz zaciąłem się na projektowaniu super frameworkow itp zamiast pisać grę. Dopiero któryś z forumowiczów (Krzysiek K. chyba) pokazał ze jest inny sposób :D

Offline Kos

  • Użytkownik
    • kos.gd

# Listopad 07, 2012, 20:03:34
W klasy się nie zamyka, klasami (a raczej obiektami) się projektuje :). Jak masz ochotę poprawić kod, to kombinuj raczej w taki sposób:
- Czy jest jakieś miejsce w kodzie, które jest problematyczne?
- Dlaczego? Co z nim jest nie tak?
- Jak przepisać / przeorganizować ten kawałek kodu, by problem zniknął?

Klasy to tylko jeden z ficzerów języka, który możesz tu wykorzystać. Jedno narzędzie z wielu. Samo uproszczenie funkcji (rozbicie dużych na mniejsze, by każda robiła jedną rzecz) jest już ważniejsze.

Podejście "wszystko ma być w klasach" stosowane na ślepo to głupota, a nie sprzątanie w kodzie.

Offline Estivo

  • Użytkownik
    • Blog

# Listopad 07, 2012, 21:51:17
Chcę mu trochę rzeczy przerzucić do klas, bo będzie według mnie łatwiej mu z tego korzystać. Co prawdę klasę ma ale wszystko tam jest EXTERN.

Offline zephyr

  • Użytkownik

# Listopad 13, 2012, 03:00:18
Dopracować trochę skalowanie - żeby gra dostosowywała tempo znikania do wyniku (o ile tego nie ma, nie wiem), podnieść trochę tempo (dość długie przestoje między falami pkt), trochę urozmaicić (np punkty w które nie należy klikać, pkt słabiej widoczne itp) i może być całkiem ok programik do ćwiczenia zręczności.