klasy w JS: tworzenie, reset, usuwanie instancji

0

Załóżmy, że chcę stworzyć prostą grę lub aplikację przeglądarkową. Chcę to zrobić w oparciu o klasy.
Więc mam 3 pytania:
a) Czy ma to znaczenie, jak tworzę instancję klasy? Można to zrobić po załadowaniu strony automatycznie, lub po kliknięciu na przycisk typu "zacznij grę".
b) Chcę zrobić reset gry. Co lepiej: usunąć instancję klasy i stworzyć nową, czy użyć metody, która będzie resetowała konkretne właściwości instancji mojej klasy?
c) Co się stanie jak odświeżę stronę lub zamknę/otworzę okno przeglądarki? Istniejąca instancja automatycznie jest usuwana z pamięci?

2

b) Chcę zrobić reset gry. Co lepiej: usunąć instancję klasy i stworzyć nową, czy użyć metody, która będzie resetowała konkretne właściwości instancji mojej klasy?

To pierwsze. Jak będziesz resetował właściwości, to jest szansa, że nie zresetujesz wszystkiego poprawnie.

Pewnie, niektóre rzeczy mogą zostać, jeśli sensem ich istnienia jest to, że trzymają dane potrzebne do gry. Np. jeśli twoja gra używa jakichś obrazków/tekstur, które są pobierane z netu (albo podobnego rodzaju zasób, który się długo ładuje, a potem może być używany w wielu rozgrywkach), to po resecie gry dalej możesz sobie te zachować. Więc jeśli masz np. klasę, która trzyma teksturę, to mógłbyś zachować instancję tej klasy nawet po resecie.

Ale jeśli masz rzeczy związane ze stanem gry np. załóżmy, że gracz jest w posiadaniu iluś jednostek (i np. każda instancja reprezentuje jedną jednostkę (np. żołnierza) i jej pozycję), to łatwiej po resecie to wszystko zaorać niż robić jakieś dziwne machinacje i resetować każdy obiekt. Prościej i bardziej elegancko jest utworzyć od nowa rzeczy.

Chyba, że naprawdę masz potrzebę używania ponownie tych samych obiektów. Jest taki wzorzec object pool
https://en.wikipedia.org/wiki/Object_pool_pattern
https://gameprogrammingpatterns.com/object-pool.html
Więc mimo tego co napisałem w poprzednim akapicie, to mogą istnieć sytuacje, kiedy wielokrotne używanie tych samych obiektów i resetowanie ich może mieć sens.
Jednak to technika optymalizacyjna i jeśli twoje pytanie jest dość ogólne Chcę zrobić reset gry. Co lepiej: usunąć instancję klasy i stworzyć nową, czy użyć metody, która będzie resetowała konkretne właściwości instancji mojej klasy?, to wątpię, żebyś jej potrzebował w tym momencie.

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