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

Droga do stworzenia gry Mario

Object Storage Arubacloud
+2 głosów
329 wizyt
pytanie zadane 15 września 2018 w C i C++ przez Poczprogramista123 Bywalec (2,900 p.)
Witam. Moim celem od bardzo dawna jest zrobienie gry Mario. Do tychczas moge sie pochwalić kilkoma grami jakie zrobilem w SFML(z ta biblioteka pracuje) tj. "Flappt Bird" ,,Pacman" czy "Tron". I teraz moje pytanie. Jak wyglada robienie tego typu grier(czyli glownie stworzenie tej mapy, ruch tej mapy, pokazywanie sie w odpowiednim momencie roznych obiektow). W tych grach jakie zrobilem sprawa byla prosta(oprocz Pacmana bo zaprogramowanie by te duszki myslaly zajelo troche czasu). Tlo bylo nie ruchome i nie wymagalo to jakiegos wiekszego opracowania mapy a tu juz lvl up. Prosil bym o jakies wskazuwki, poradniki bo jestem czlowiekiem bardzo ambitnym i zrobienke tego typu gry bardzo by mnie usatysfakcjonowalo. Dzieki za uwage.
komentarz 16 września 2018 przez jpacanowski VIP (101,940 p.)

* dotychczas

* wskazówki

* używaj polskich znaków

komentarz 16 września 2018 przez Poczprogramista123 Bywalec (2,900 p.)
Bardzo dziekuje za konstruktywna odpowiedz. Moze bys pomyslal ze pisze na telefonie i nie bd tracil czasu na ą ę ż itp.

2 odpowiedzi

+2 głosów
odpowiedź 15 września 2018 przez Bornegio Obywatel (1,070 p.)
Zazwyczaj tworzy się obiekt (GameObject) po którym dziedziczą wszystkie obiekty gry. Potem tworzy się klasę (world) i obiekt Camara. który dziedziczy po GameObject i zajmuje się wyświetlaniem pozostałych obiektów. Game object powinien mieć pozycję (x, y) w odniesieniu do świata, szerokość i wysokość.
+2 głosów
odpowiedź 15 września 2018 przez niezalogowany
Ja osobiście robię w taki sposób, że na początku, w czasie ładowania gry wczytuje mapę z pliku, a potem w każdym obrocie głównej pętli sprawdzam czy kafelek mapy jest akurat widoczny na ekranie i jeśli tak, to go rysuję. Do "poruszania" ekranem urzywam sf::view. I jeszcze jedno. Nim zaczniesz rozrysuj sobie hierarchię klas i ich metody, bo potem się pogubisz.
komentarz 15 września 2018 przez Poczprogramista123 Bywalec (2,900 p.)
Wielkie dzieki. Widze ze ogarniasz temat wiedz pociagne troche za jezyk xd. Bardzo to zdanie mnie interesuje "Wczytuje mape z pliku". Jak to wyglada i czym jest ten plik. Jest to dlugi obrazek tla czy nwm jakies dane gdzie dana przeszkoda sie znajduje? I termin mapa kafelkowa tez z checia bym chcial poznac. Znasz jakis dobre omowienie tej tematyki? I Dzieki za nazwe klasy obczaje ja sb i jesli chodzi o rozpisywanie na kartce to juz odgrylem jakie to jest wazne i pomocne przy grze Pacman.
komentarz 15 września 2018 przez NIMuser Stary wyjadacz (11,030 p.)
Rzadko daje się obrazek tła. raczej rysujesz powtarzające się elementy tła, takie "kafelki" (jeśli dobrze kojarzę tą grę, o którą pytasz).
komentarz 16 września 2018 przez niezalogowany
Najprostszy sposób to stworzyć plik tekstowy z liczbami i ustalić, że np. 1=ziemia 2=powietrze 3 =bohater i w pętli za pomocą obiektu klasy fstream tworzyć na podstawie liczb kafelki i dodawać je do odpowiednich vectorów.
komentarz 16 września 2018 przez Poczprogramista123 Bywalec (2,900 p.)
Dzieki ogarnolem troche dzieki wam. Juz czaje ze w pliku .txt piszemy jakies liczby ktore odpowiadaja danym kafelka czyli texturom (np woda, ziemia). Ale rodzi mi sie kolejne pytanie.Jak okreslic kiedy dany kafelek ma zostac narysowany i gdzie? Idzie sb mario i (tak domniemywam) dzieki klasie sf::view steruje kamera i na podstawie ruchu maria a dokladniej przebytej drogi sa tworzone nowe kafelki? Ale jak okreslic kiedy taki kafelek ma sie pojawic i w jakiej pozycji? Tez za pomoca plili txt?
komentarz 16 września 2018 przez niezalogowany

Ja najczęściej robiłem w taki sposób:

Bohater u mnie był zwykle w środku okna. By sprawdzić czy są widoczne wystarczy do jego pozycji dodać pół rozmiaru okna i sprawdzisz czy są widoczne, nie wiem jak to dokładnie wytłumaczyć, wyglądało to mniej więcej tak:

jeśli((kafelka->x >bohater->x - okno->x / 2) && (...) && (...) && (...))

{

 kafelka->rysuj();

}

A pozycje kafelek na początku, przy ładowaniu, tworzeniu mapy wyznaczam, po kolei, gdy wczytuje z pliku w pętli for, np.

pozycja w x = i * kafelek->size

Jeśli dalej nie rozumiesz czegoś, nie wiesz czegoś jeszcze lub źle ja tłumaczę to pisz.

Podobne pytania

+1 głos
1 odpowiedź 170 wizyt
pytanie zadane 29 października 2018 w C i C++ przez Poczprogramista123 Bywalec (2,900 p.)
+2 głosów
1 odpowiedź 385 wizyt
+3 głosów
0 odpowiedzi 224 wizyt

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 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!

...