Autor Wątek: Rysowanie obiektów  (Przeczytany 1090 razy)

W.I.T.W

  • Gość
# Lipiec 29, 2007, 18:15:51
Witam

Pisze grę 2d i mam taką klasę jak C_obiekt :

class C_Obiekt
{
  private :
       
       int x,y;

  public :

       void rysowanie_obiektu();
}
C_Obiekt* Obiekt = new C_Obiekt[1000];

I mam pytanie czy da się jakoś inaczej rysować tylko te obiekty które są w obrębie kamery gracz niz tak jak poniżej.

for ( short i = 0;  i < 1000; i++)
{
 if ( sprawdza czy obiekt znajduje się w obrębie kamery gracza ) ( Obiekt + i )->rysowanie_obiektu();
}

« Ostatnia zmiana: Lipiec 29, 2007, 18:17:45 wysłana przez W.I.T.W »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Kot

  • Użytkownik

# Lipiec 29, 2007, 18:26:23
Twoje rozwiązanie jest dobre. Jeżeli jednak uważasz, że jest zbyt wolne, możesz doczytać o podziale przestrzeni - np. drzewa czwórkowe (quadtree).

Offline ziomber

  • Użytkownik

  • Zbanowany
# Lipiec 30, 2007, 13:26:00
da sie e najpeirw wyliczasz co narysowac a pozniej to rysujesz

Offline Xion

  • Redaktor
    • xion.log

# Lipiec 30, 2007, 13:48:47
W przypadku gry 2D sprawdzenie czy obiekt jest w obrębie kamery to tylko test zawierania się prostokątów, więc nie jest to specjalnie kosztowne. Naturalnie jeśli obiektów jest dużo, można pomyśleć np. o podziale na kafle lub quadtrees.