Klasy abstrakcyjne, wskaźniki do obiektów

0

Jeżeli mam np. stworzoną klasę główną:

Animacja
Od niej dziedziczą: Animacja chodu, animacja umierania, animacja strzału.

Mam stworzony std::vector <std::unique_ptr <Animation> > animation;
No i teraz przykładowo chcę się ruszyć graczem i klikam A-D więc powinna uruchomić się metoda update obiektu Animacja Chodu. Gdy umiera to znowu animacja umierania. No ale jeżeli ładuje te obiekty do vectora to nie mogę się bezpośrednio do nich odwoływać, co zrobić w takiej sytuacji?

Mam taki pomysł by do każdego typu animacji dodać std::String animationType; i potem if(A is pressed) if(animation[i].getType() == "MoveAnimation")...

Albo po prostu nie tworzyć tego w vectorze tylko tworzyć osobne instancje MoveAnimation moveAnimation itd.

0

Przechowywanie tego w vector jest bez sensu. Ja bym wrzucił to do map gdzie kluczem jest jakiś enum czy tam char który odbierasz jak user coś wciśnie. Wtedy robisz tylko mapa[klasiwsz].wykonajAkcje()

1 użytkowników online, w tym zalogowanych: 0, gości: 1