Myślałem o stworzeniu prostej gry 2D Sidescroller, takiej jak SuperMario. Potem zastanawiałem się, jak zapisać, załadować lub utworzyć poziomy dla gry. Pierwszą rzeczą, o której myślałem, było narysowanie prostego blokowego png, który reprezentuje poziom, wykonanie wszystkich części, w których gracz może chodzić w specjalnym kolorze (może liliowym). Zaimportowałem poziom w blokach lub kafelkach, aby sprawdzić kolizję.
więc moje pytania brzmią: czy
są na to lepsze metody?
jakie są profesjonalne metody?
powinienem to zrobić z kafelkami i edytorem map opartym na kafelkach? (z jakiegoś powodu nie podoba mi się to, ale wydaje mi się, że byłaby to najlepsza metoda, której bym użył)
z poziomem opartym na kafelkach, w jaki sposób można realizować zbocza i jak sprawdzać je pod kątem kolizji?
źródło
Typowym sposobem może być na przykład tylko ciąg znaków
0,0,0,0,0,0,1,1,1,1,0,0,0,2
gdzie 0 byłoby blokiem, po którym można chodzić, 1 może oznaczać kolce, a 2 oznaczać linię mety
po prostu przeczytałbyś to w pliku tekstowym (lub na stałe zapisałeś w grze) i narysowałeś względny blok, który jest powiązany z liczbą, i miałeś swoją logikę kolizji, aby poradzić sobie bez względu na konfigurację.
Oczywiście możesz wybrać dowolny format, a być może 0 oznacza narysowanie 5 bloków dostępnych do przejścia.
To tylko jeden ze sposobów, w jaki można to osiągnąć.
http://www.smudgedcat.com/tut_tiledlevel.html ten link jest przykładem w c # przy użyciu frameworka XNA. da ci ogólny pomysł (NIE zawiera nachyleń, ale podobna rzecz mogłaby zostać użyta do zdefiniowania tego rodzaju przypadku)
Pozdrawiam Mark
źródło
Wiele gier korzysta z aplikacji open source o nazwie Mappy . Ma swój własny format, który obsługuje wiele warstw i inne funkcje. Prawdopodobnie chcesz powiązać kilka rodzajów danych z danym kafelkiem.
Myślę, że podejście do edytora poziomów w grze jest bardzo powszechne. Tryb programisty jest wewnętrznym opisem tego, w jaki sposób zaprojektowano poziomy dla bardzo popularnej gry, Braid. Gra ma tryb rozwoju, w którym poziomy można budować / modyfikować. Same poziomy mają warstwę kolizyjną pokrytą kafelkami graficznymi:
I ja osobiście tego nie polecam, ale program demonstracyjny 2D dla Allegro użył pewnego rodzaju formatu modelowania 3D i przekonwertował go na niestandardowy format w grze. Zaletą było to, że mógł modelować bardzo gładkie, ciągłe powierzchnie. (Była to gra planszowa oparta na fizyce 2D).
źródło
„Profesjonalne” metody prawdopodobnie wymagałyby bardzo szczegółowego edytora map, prawdopodobnie w języku C #, który dałby im pełną kontrolę nad wszystkim.
Istnieją dwa główne podejścia; jeden jest łatwiejszy do zrobienia, ale nie tak skuteczny.
źródło
Miałem podobne myśli (np. Wróciłem do pisania gier hobby - praca i inne zobowiązania ...)
Poważnie rozważyłem drogę opracowania „Edytora map” jako części gry / aplikacji.
Jeśli Twoja gra kiedykolwiek wykracza poza własny komputer, zawartość społecznościowa byłaby wielkim dobrodziejstwem.
źródło