Witam,
niedługo będę robił swój pierwszy projekt z programowania - grę, do której chciałbym samodzielnie zrobić grafikę. Będzie to gra typu Bumper Cars.
Chciałbym, aby samochodziki obracały się w stronę w którą jadą. Można to zrobić spritem, podmieniając grafiki w zależności od kierunku poruszania się samochodzika, ale wtedy byłoby pewnie kilka punktów zmiany w zależności od kierunku samochodzika ( S, SE, E, NE, N, NW, W, SW). Wyglądałoby to wtedy mało płynnie. Wolałbym żeby samochodzik obracał się płynnie i stąd moje pytanie. Jak uzskać taki efekt. Należy po prostu zrobić rzeczywiście wiele grafik, może jakiś 1 model, czy jak ? Jestem w tym temacie zielony, także przepraszam ze niespójności, czy błędy. Przesyłam poniżej poglądowo jak miałaby ta gra wyglądać.
https://scr.hu/9kNKAR
Jakbyś zrobił rzut jak w GTA, to wystarczyłoby jedno autko i mógłbyś ten obrazek obracać o dowolny kąt w kodzie gry.
Jakbyś miał modele 3D autek, to byś mógł je wyświetlać w dowolnym rzucie kamery obrócone o dowolny kąt.
Do samego wyświetlenia samochodu w grze wystarczy Ci jedna grafika, odpowiednio obrócona według bieżącego kąta. Natomiast z zestawu sprajtów (wielu dla jednego samochodu) korzysta się wtedy, gdy każdy sprajt różni się nieco od pozostałych. W ten sposób imituje się np. cienie na samochodzie, bez używania mechanizmów dynamicznego oświetlenia.
Przykładem gdy używającej wielu sprajtów dla pojedynczego obiektu jest Turbo Sliders. W katalogu %GAME%\cars
znajdują się obrazy PNG z ciągiem sprajtów. Każdy z nich różni się przede wszystkim refleksem na szybie oraz cieniami na karoserii:
Jeśli więc Twój samochodzik ma posiadać zmieniające się detale w zależności od kąta, to powinieneś użyć zestawu sprajtów. W przeciwnym razie jedna grafika w zupełności wystarczy.
Edit: jest jeszcze jeden przypadek, kiedy to wiele sprajtów jest potrzebne – jeśli nie ma się dostępu do funkcjonalności malowania grafiki obróconej o dowolny kąt. Wtedy nie ma innej możliwości, niż wyświetlać różne sprajty.
Dzięki wielki za odpowiedzi. Nie ma to być jakoś specjalnie wysoki poziom, więc chyba zrobię rzutowanie modelu 3D na płaszczyznę i powinno być okej.