• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Programowanie obiektowe - mnogość obiektów.

Object Storage Arubacloud
0 głosów
244 wizyt
pytanie zadane 8 lutego 2017 w Rozwój zawodowy, nauka, praca przez sebastian970 Użytkownik (710 p.)
Witam.

Programuje już od pewnego czasu lecz programowanie obiektowe zaczynam dopiero trzeci dzień stąd mam też mnóstwo pytań na które ciężko mi znaleźć odpowiedzi.

Głównie zastanawia mnie mnogość obiektów:

Dajmy na to w grze będę mieć nie wiadomą ilość obiektów "graczy" których będzie tworzyła funkcja odpowiadająca za dołączenie do rozgrywki.

Problem w tym iż totalnie nie mam pojęcia jak wykonać automatyczne tworzenie się obiektów bez konieczności manualnego wpisywania ich w kodzie (np. player p1, p2, p3 itp. itd.).

Jest na to jakiś dobry sposób?

Drugim problemem są kolizje - mam w klasie postaci funkcje bool wykrywającą kolizje lecz trzeba jej potem używać do sprawdzenia każdego z graczy z osobna -> player.collision(gracz z którym ma być sprawdzona kolizja); Co jeżeli np. będę musiał sprawdzać kolizje z tysiącem elementów osobno? Jak to rozwiązać?

Mam nadzieje, że wiecie o co mi chodzi i naprostujecie mi obiektowe myślenie :D

Bardzo proszę o pomoc.
komentarz 8 lutego 2017 przez Patrycjerz Mędrzec (192,320 p.)
O jakim języku programowania mówisz?
2
komentarz 8 lutego 2017 przez Aisekai Nałogowiec (42,190 p.)
Prawdopodobnie c++, tak wnioskuję po tagach, ale jakie to ma znaczenie? Wg mnie nie ma większego znaczenia.

2 odpowiedzi

+2 głosów
odpowiedź 8 lutego 2017 przez Dash Nałogowiec (29,650 p.)
wybrane 10 lutego 2017 przez sebastian970
 
Najlepsza
Wykonywanie na tysiącach obiektów na raz? Musisz je zorganizować i umieścić w tablicy bądź jakimś kontenerze. Tworzysz powiedzmy grę Space Invaders. Masz 30 kosmitów, które co sekundę poruszasz o jeden w dół. Żeby zrobić to czysto i łatwo, tworzysz tablicę 30 elementową kosmitów, każdy kosmita jest w jednej szufladce. Jeżeli chcesz wszystkie potworki przesunąć, używasz pętli iterującej przez całą tablicę i wykonującej na każdym elemencie odpowiedni ruch.

Tworzenie dużych ilości obiektów odbywa się analogicznie, w pętli. Tworzysz tablicę 30 elementów, następnie pętle która wykona się 30 razy, tworząc w kolejnych szufladkach nowe obiekty. Taki kod będzie króciutki i czysty, a pozwoli stworzyć dowolną liczbę obiektów na raz.

Oczywiście używanie standardowych tablic jest nieporęczne, o czym sam się szybko przekonasz, dlatego gdy ogarniesz koncepcję zarządzania większą ilością obiektów, polecam poczytać o kontenerach STL, przede wszystkim o std::vector.
komentarz 10 lutego 2017 przez sebastian970 Użytkownik (710 p.)
Okay dzięki :D

O Vectorze już słyszałem i używałem go przy sieciowaniu.

Już dzięki wam ogarnąłem obiektowe zarządzanie elementami i już wszystko śmiga na obiektach, wielkie dzięki :D
+1 głos
odpowiedź 8 lutego 2017 przez Aisekai Nałogowiec (42,190 p.)
edycja 8 lutego 2017 przez Aisekai
1) p1, p2, p3 zawsze można włożyć do tablicy czy  vectory i problem dopisywania zmiennych w kodzie znika. Vector to coś jak tablice, tylko z możliwością dodawania elementów.

2) Zawsze możesz do funkcji podesłać Tablicę/Listę z graczami i odpowiednią pętlą sprawdzić czy występuje kolizja.

 

Jeśli dobrze zrozumiałem o co Ci chodzi
komentarz 10 lutego 2017 przez sebastian970 Użytkownik (710 p.)
Dzięki już wszystko zrozumiane i hula :D

Podobne pytania

0 głosów
1 odpowiedź 451 wizyt
0 głosów
2 odpowiedzi 2,679 wizyt
0 głosów
1 odpowiedź 425 wizyt

92,568 zapytań

141,422 odpowiedzi

319,641 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...