• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[C++/SFML] Snake New Version

Object Storage Arubacloud
+21 głosów
1,733 wizyt
pytanie zadane 19 lutego 2016 w Nasze projekty przez emSon Stary wyjadacz (10,480 p.)

Cześć. Chciałbym wam zaprezentować grę, którą tworzyłem na przełomie kilkunastu ostatnich tygodni. Jest to klasyczny Snake, jednak z paroma nowymi elementami mogącymi urozmaicić rozgrywkę.

INFO:

  1. Jaśniejsze owoce wbiją na licznik trochę punktów, ciemniejsze odejmą.
  2. Co osiem sekund wystrzeliwany jest laser, który potrafi przeciąć węża. Jest także licznik który pokazuje czas do strzału.
  3. Jeśli przejedziemy kursorem myszki przez laser zmieni on kolor na niebieski i straci swoje możliwości tnące.
  4. Po kliknięciu spacji aktywuje się na pewien okres tryb slow-motion, który pomoże w uniknięciu lasera bądź zebrania mniejszego owocu. Po zużyciu energii wyłącza się. Energia regeneruje się samoistnie.

SCREEN:

DOWNLOAD:

Jako że to moja pierwsza ukończona gra, proszę o krytyczne spojrzenie zarówno na gameplay jak i na kod. Chcę też w tym miejscu podziękować Bato, który podsunął mi parę dobrych pomysłów oraz pietrzakacper, który wskazał parę bugów i skompilował wersję na Windows.

8 odpowiedzi

+2 głosów
odpowiedź 22 lutego 2016 przez criss Mędrzec (172,590 p.)
edycja 23 lutego 2016 przez criss
Gierka jest świetna. Bardzo mi się podoba minimalistyczna grafika. Muzyczka pasuje. Bez zbędnych animacji po przegranej - sekunda i zaczynamy od nowa. Ogólnie to daje dyche.

Rzuca się w oczy duża ilość klas jak na tak małą gierke. To duży plus! Na pewno poprawia czytelność kodu.

Tak jak wspomniał Patrycjesz: dziwnie używane kwalifikatory dostępu. Nie zaciemnie kodu, ale... dziwne, no. XD

Rzuciło mi się też w oczy, że nie używasz list inicjalizacyjnych w konstruktorach.

Bardzo dziwne sprawdzanie kolizji. W Collideable spodziewałem się jakiejś metody isCollision czy coś takiego. A tu niespodzianka! RectangleShape i getPosition()... Na pewno niespodziewane i burzy troche czytelność kodu (rozumiem, że ten RectangleShape, to ten co jest rysowany?).

Podobnie dziwny jest CollisionChecker. Myślę, że lepiej jak by był klasa statyczną (tak, wiem, że w C++ coś takiego nie istnieje - chodzi mi o same statyczne metody i konstruktor = delete). Ogólnie rzecz biorąc nie podoba mi się system kolizji. Nie jestem żadnym autorytetem, ale wg mnie kolizje najlepiej by wyglądały implementując klase abstrakcyjną z metodami isCollision i getCollider (dla przykładu).

Przy okazji - nie zgadzam się z Patrycjeszem odnośnie Collideable. Taka klasa zdecydowanie poszerza możliwości rozwijania kodu. Nawet w tym przypadku, mimo że nie była pisana z takim zamiarem i wyszła raczej kiepsko.
komentarz 24 lutego 2016 przez emSon Stary wyjadacz (10,480 p.)
Dzięki za opinię. Będę wiedział na co patrzeć przy następnym projekcie.
+2 głosów
odpowiedź 24 lutego 2016 przez draghan VIP (106,230 p.)
Plus za build na dwie platformy. Oceniam tylko na podstawie wrażeń, bo w kod nie zaglądałem, ale pograłem chwilę.

Plus za grywalność, pomysł, grafikę i (ze dwa za) muzykę. Minus za brak jakiegokolwiek helpa oraz sekcji "about" w grze.

Jesteś autorem muzyki?
komentarz 24 lutego 2016 przez emSon Stary wyjadacz (10,480 p.)
Dzięki za opinię. Muzyka nie jest moja. Znalazłem ją udostępnioną na jakiejś stronie, na której można pobrać za darmo materiały do swoich gier.
komentarz 24 lutego 2016 przez draghan VIP (106,230 p.)
No to powtórzę - grywalnie podobało mi się, 9.8/10. ;)

Jesteś pewien, że licencja pozwala na umieszczenie muzyki w Twojej grze bez żadnej informacji o utworze? :P
komentarz 24 lutego 2016 przez emSon Stary wyjadacz (10,480 p.)
Tak, absolutnie :) . Autor prosił jedynie o przesłanie mu informacji, że w jakiejś grze jego muzyka została wykorzystana, bo to motywuje go do dalszej pracy.
+1 głos
odpowiedź 19 lutego 2016 przez Patrycjerz Mędrzec (192,320 p.)
edycja 22 lutego 2016 przez Patrycjerz

Gra całkiem ciekawa. Przejrzysta i prosta grafika idzie w parze z wpadającą w ucho muzyką. Podoba mi się bardzo koncept lasera oraz trujących "owoców".

Wg mnie gra zasługuje na mocne 9/10 yes

Co do kodu, to nie zagłębiałem się w niego zbytnio, ale znalazłem dwie wady, tzn. nadmierne używanie słów public, private i protected (nie wiem, czy chciałeś upodobnić swój kod do Javy) oraz zbędną klasę Collidable - przecież to tylko opakowany sf::RectangleShape.

komentarz 19 lutego 2016 przez emSon Stary wyjadacz (10,480 p.)
dzięki. co do nadużywania tych słów, jakiś taki mam styl pisania :)
nie wiem czy zauważyłeś, ale w CollisionChecker porównuje obiekty typu Collidable. tworząc klasy dziedziczące po niej nie musiałem pisać osobnych funkcji dla wąż-owoc, wąż-laser, tylko po prostu sprawdzałem kolizję collidable-collidable
komentarz 19 lutego 2016 przez Patrycjerz Mędrzec (192,320 p.)

A nie ma możliwości, abyś dziedziczył z klasy sf::RectangleShape?

komentarz 19 lutego 2016 przez emSon Stary wyjadacz (10,480 p.)
Pewnie dałoby się to jakoś okodować bez tej dodatkowej klasy. Ale zamknąłem ten projekt i kodu nie ruszam. Będę wiedział na co patrzeć przy następnym :)
komentarz 20 lutego 2016 przez koczurekk Gaduła (3,420 p.)
Za dużo prywatnych składowych, autorzy sfml nie lubią protected, więc kiepskawo z dziedziczeniem. :\
+1 głos
odpowiedź 22 lutego 2016 przez Andrzej Żukowski Nowicjusz (160 p.)
Super. Bardzo fajnie zrobiona gierka. Też kiedyś napisałem Snake-a na Windowsa. Do pobrania:

http://www.mediafire.com/download/8989hnka42nexz6/Snake.zip

Pozdrawiam.
+1 głos
odpowiedź 24 lutego 2016 przez DarkEliat Bywalec (2,810 p.)
Gra naprawdę fajna, prosta grafika, fajna muzyka. Lecz po co Ci ta konsola z tyłu? Jeśli korzystałeś z Code::Blocksa to kliknij na projekt prawym przyciskiem myszy -> Properties -> Build targets (zakładka) -> rozwiń Type -> wybierz GUI application -> zapisz -> skompiluj -> i gotowe. Pozdrawiam.
+1 głos
odpowiedź 25 lutego 2016 przez b00ny Mądrala (6,050 p.)
Fajna, ciekawa i łatwa, pograłem kilka minut, ale to nie dla mnie :P

8/10
0 głosów
odpowiedź 25 lutego 2016 przez Pixel040 Gaduła (3,100 p.)
jakiej wersji SFML'a użyłeś ?
komentarz 1 marca 2016 przez emSon Stary wyjadacz (10,480 p.)
Najnowszej, to bodajże 2.3.1
0 głosów
odpowiedź 15 marca 2016 przez Einstein21 Obywatel (1,420 p.)
Mam problem z odpaleniem. Nie można odpalić bo brakuje bibliotek.

Miałbyś paczkę z wszystkimi bibliotekami?
komentarz 19 marca 2016 przez emSon Stary wyjadacz (10,480 p.)
Trzeba zainstalować pakiet Visual Studio 2015 C++ Redistruable czy coś takiego.

Podobne pytania

+4 głosów
0 odpowiedzi 396 wizyt
pytanie zadane 1 listopada 2016 w Nasze projekty przez Ehlert Ekspert (212,670 p.)
+1 głos
1 odpowiedź 617 wizyt
pytanie zadane 18 maja 2016 w Nasze projekty przez sofnir Gaduła (4,690 p.)
+1 głos
2 odpowiedzi 639 wizyt
pytanie zadane 1 maja 2016 w C i C++ przez Curiosity Nowicjusz (130 p.)

92,543 zapytań

141,385 odpowiedzi

319,490 komentarzy

61,929 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...