Autor Wątek: Animacje w świecie 2d  (Przeczytany 772 razy)

Offline Adam B

  • Użytkownik

# Sierpień 14, 2009, 12:28:43
Zastanawiam się nad sposobem trzymania przedmiotów, postaci i obiektów animowanych w grach typu 2d. Chodzi mi dokładnie o modelowanie systemu plików. Przyszły mi do głowy 2 sposoby rozwiązania tego problemu:

 - Trzymam wszystkie grafiki w jednym pliku (PLIK.GRAF), a animacje w innym plikach (PLIK1.ANI itd.) (pliki animacji zawierają informacje o miejscu, w którym znajdują się grafiki z pliku PLIK.GRAF, które to mają być animowane)
 - Drugi sposób jest następujący: Grafiki nieanimowane w jednym pliku, a każdy animowany model wraz z każdą klatką animacji w innych plikach.

Pojęcie animacji jest mi obce z tej perspektywy, ponieważ wcześniej wczytywałem grafiki do gry, a jak chciałem coś animować robiłem to w pętli lub pisałem jakąś prostą funkcję. Teraz chciałem to w pewien sposób poprawić żeby w programie wyglądało to mniej więcej tak:

if (keyPressed = UP)
 {
  player.moveUp();
  player.Image = animation("playerMoveUp");
 }
  ...
 draw.player();

Prosił bym o rade, które rozwiązanie do tych celów lepiej się nadaje. Lub o jakiś inny pomysł na przedstawienie animacji w świecie 2d :)

Pozdrawiam Adam B

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline blizniak

  • Użytkownik

# Sierpień 14, 2009, 16:04:20
do animacji 2D dobrze nadaje się taki myk,
że:
- albo każdy animowany obiekt ma swoją teksturę, która zawiera wszystkie klatki animacji i znajduje się w jednym miejscu w RAM/GRAM. podczas animacji manipulujesz tylko koordynatami tekstur, czyli tak jakbyś przez kwadratowy otworek oglądał komiks przesuwając go po nim ;]
- albo wszystkie animacje trzymane są na jednej teksturze i dalej jak wyżej z tym, że oczywiście każda animacja ma swój obszar

chodzi o to, aby jak najrzadziej zmieniać teksturę na GPU, ponieważ generuje to ogromny nakład pracy.


Offline Adam B

  • Użytkownik

# Sierpień 14, 2009, 16:18:27
oki thx.