Usuwanie obiektów . XNA

Usuwanie obiektów . XNA
C2
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 12 lat
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!

bolson
  • Rejestracja:około 15 lat
  • Ostatnio:dzień
  • Lokalizacja:Zielona Góra/Poznań
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.

C2
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 12 lat
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? :)

bolson
  • Rejestracja:około 15 lat
  • Ostatnio:dzień
  • Lokalizacja:Zielona Góra/Poznań
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.