Usuwanie obiektów . XNA

0

Cześć!

Mam mały problem, ponieważ nie wiem zbytnio jak po wykryciu kolizji zniszczyć obiekt, tak żeby nie było go widać na ekranie, moja myśl wyglądała tak ,że klasa obiektu przechowuje zmienna logiczną i w momencie wykrycia kolizji następuje zmiana wartości zmiennej logicznej z true na false. Następnie w metodzie Draw() postawiłem warunek if(active){zawodnik.Draw(spritebatch)}. Przy tym rozwiązaniu faktycznie obiekt znika, natomiast wygląda na to że tylko tekstura ponieważ obiekt typu Rectangle zostaje z określoną pozycją na swoim miejscu i nadal można nim sterować. Macie jakiś pomysł jak usuwać obiekty z ekranu po wykryciu kolizji ?

Pozdrawiam!

2

Sterowanie masz zapewne zaimplementowane w metodzie Update(), zatem tam również jest potrzebny warunek if(active). IMO lepiej stworzyć kontener dla obiektów(np. lista) i w momencie wykrycia kolizji usunąć z niego obiekt.

0

Dzięki za odpowiedź! Listę mam zrobioną dla innych obiektów, które pełnią rolę przeciwników i przeszkód i faktycznie jak usuwam obiekt z listy to wsio jest ok na scenie w grze, tylko czy dla głównego gracza i jednego elementu opłaca się robić listę jednoelementową? Może jest jakiś inny sprytny sposób? :)

0

Wszystko zależy od tego jak masz zaimplementowaną mechanikę gry. Można zrobić np. maszynę stanów. Gra przechodzi w stan PLAYER_DIED i wykonuje działania odpowiednie dla tego stanu.

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