Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Link:

https://www.dropbox.com/s/p8z7tsd2nl8sv5x/Snake.zip?

Scan:

https://www.virustotal.com/pl/file/c31c2291b2812847c696bb94ddf40de8ffc409fd00ae56eab4dee08e8130c862/analysis/1430314921/

Praktyczny opis programu:
Moja gra to klon popularnej gry "Snake", naszym zadaniem jest zbieranie przedmiotów (w zależności od mapy) dzięki którym rośniemy i zdobywamy punkty, liczy się również czas od zebrania poprzedniego przedmiotu (więcej punktów do punktacji ogólnej). Teoretycznie gra nigdy się nie kończy, ciągle możemy zbierać punkty oraz pobijać swoje rekordy.

Techniczny opis programu:
Gra została napisana w języku C++ z wykorzystaniem biblioteki SFML. Cały kod aplikacji można zobaczyć na githubie:

https://github.com/morsisko/Snake-in-SFML

Opis sposobu na odnalezienie easter egga:
W głównym menu należy "wpisać" popularny konami kod:

http://pl.wikipedia.org/wiki/Konami_Code

Następnie należy wybrać jedną z trzech map.

Życzę miłej gry. :)

 

Bot do gry NosTale:


[bOT] NosBota 1.3v

Opublikowano

O matko o.O

Co się stało z tym kodem o.O

 

Ładowanie zasobów - osobna klasa.

Od linijki 183 w pliku game.cpp wszystko można było zrobić jako osobne metody.

 

Obsługa dźwięku - osobna klasa.

Nie chce mi się przytaczać więcej przykładów ale poczytaj o SOLID i ogólnie obiektowości.

Przyjmuje zlecenia dot. web masterki.

while(!$success){
....try();
}

 

Opublikowano

@Sodema

Dzięki za opinie ale plik game.cpp jest przecież podzielony na osobne metody. W dodatku dla dwóch dźwięków chyba nie opłaca się robić osobnej klasy? Według mnie snake.die.play() jest dość przejrzyste. Jest to dopiero mój drugi projekt który pisałem z użyciem obiektów i klas, także wiem, że najlepiej ten kod nie wygląda.

Bot do gry NosTale:


[bOT] NosBota 1.3v

Opublikowano

Musisz się nauczyć,że małe projekty lubią się rozrastać. Nawet dla tych dwóch dźwięków,bo jest to osobne zadanie.W przyszłości jak będziesz pracował nad czymś większym,to już nie zrobisz tego błędu ;)

I co ma na celu plik main.cpp?

Bo go totalnie nei rozumiem.

public:
    Pos position;
    float x;
    float y;
    sf::Texture apple_texture;
    sf::Sprite apple;

Przykład z klasy apple.

Po co udostępniasz apple_texture i apple,skoro to mogą być pola prywatne?

Jak bardzo chcesz na nich operować to stwórz dla nich getAppleTexture i setAppleTexture.

void check_snake_body(Pos pos, int len)
    {
        //if
    }

Ani to metoda wirtualna,ani to ma jakieś ciało

Przyjmuje zlecenia dot. web masterki.

while(!$success){
....try();
}

 

Opublikowano

Musisz się nauczyć,że małe projekty lubią się rozrastać. Nawet dla tych dwóch dźwięków,bo jest to osobne zadanie.W przyszłości jak będziesz pracował nad czymś większym,to już nie zrobisz tego błędu ;)

I co ma na celu plik main.cpp?

Bo go totalnie nei rozumiem.

public:
    Pos position;
    float x;
    float y;
    sf::Texture apple_texture;
    sf::Sprite apple;
Przykład z klasy apple.

Po co udostępniasz apple_texture i apple,skoro to mogą być pola prywatne?

 

­

 

Bo moze? lol

o8HfXuR.png

CAPSLOCK TEAM - LEPIEJ WIDOCZNI WIDOCZNIE LEPSI

Cała prawda o LittleBlack

Opublikowano

@Sodema

Oj, ten plik main.cpp z głównego katalogu miał zostać usunięty, poprawny jest w source/main.cpp

Co do publicznych tekstur i spritów to chyba musi tak być, gdy robiłem metodę "getTexture/getSprite" to zawsze zostawał mi zwracany czarny kwadrat, więc albo coś źle robiłem albo po prostu w sfml nie ma opcji dzielenia tych textur pomiędzy klasami.

Bot do gry NosTale:


[bOT] NosBota 1.3v

Opublikowano

na pewno czarna? a nie biała? jeżeli biała to szukaj *white square problem sfml* nawet autorzy w kursie wytłumaczyli czemu tak się dzieje.

Opublikowano

­

 

Bo moze? lol

 

Otrzymujesz nagrodę najbardziej bezsensownego postu w tym temacie <brawo>

Skoro klasa wykorzystuje te zasoby wewnętrznie i nie ma potrzeby wydostawania ich na zewnątrz,można przez konstruktor do pola prywatnego załadować zasoby.

To takie dobre praktyki na przyszłość ;) A jeśli byś tak powiedział podczas rekrutacji,podziękowaliby Ci natychmiast.

Przyjmuje zlecenia dot. web masterki.

while(!$success){
....try();
}

 

Opublikowano

Otrzymujesz nagrodę najbardziej bezsensownego postu w tym temacie <brawo>

Skoro klasa wykorzystuje te zasoby wewnętrznie i nie ma potrzeby wydostawania ich na zewnątrz,można przez konstruktor do pola prywatnego załadować zasoby.

To takie dobre praktyki na przyszłość ;) A jeśli byś tak powiedział podczas rekrutacji,podziękowaliby Ci natychmiast.

­

UG8ICiG.png

o8HfXuR.png

CAPSLOCK TEAM - LEPIEJ WIDOCZNI WIDOCZNIE LEPSI

Cała prawda o LittleBlack

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...