Zniszczenie obiektu (OpenGL)

0

Witam . Pisze wlasnie swoja pierwsza gre , jest to lecacy samolocik przez labirynt i na razie zbierajacy kostki ktore maja byc dodatkowymi punktami . Kostki sa obiektami zwanymi "Punkt" wlatujac w nie program dodaje punkt (na razie blednie ale nie o to chodzi) i w tym momencie chce aby dana kostka znikla z planszy i nie wiem zabardzo jak to zrobic

napisalem cos takiego :

Punkt * pu1 = new Punkt;
// ...
void sciany(string nazwa_pliku)
{
     
     ifstream plik(nazwa_pliku.c_str());
     plik >> rozmiar;  
     
     tablica = new Budowa_scian [rozmiar];
     
     for(int i=0;i<rozmiar;++i)
     {
             for(int j=0;j<19;++j)
             {
                     plik>>tablica [ i ].tab[j];
             }  
     }
     
     for(int i=0,g=0;i<rozmiar;++i,--g)
     {
             for(int j=0;j<19;++j) 
             {
                if(tablica [ i ].tab[j]==0)Pojedyncza_sciana(j-9,-1.0,(float)g);  
                
                if(tablica [ i ].tab[j]==2)  
                {  
                   pu1->pob_xx() = float(j-9);
                    pu1->pob_yy() = float(-1.0);
                    pu1->pob_zz() = float(g);  
                    
                    pu1->rysuj_punkt(pu1->zwr_x(),pu1->zwr_y(),pu1->zwr_z()); 
                    
                }
             }                                  
     }
     
     plik.close();
     
}

powyzsza funkcja zczytuje wyglad mapy z pliku txt ktory miej wiecej wyglada tak :

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 0 1 1 1 1 1 1 1 2 1 1 1 1 1 0 0 0
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0
0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0

0 - sciana
1 - droga wolna
2 - 'Punkt'

Po zczytaniu calej mapy wszystko ladnie sie wyswietla , ale nie wiem jak po kolizji
z punktem go juz nie rysowac , wiec napisalem cos takiego

if(czy_kolizja(xPos,yPos,zPos)==1)
{
        
          ilosc_pkt = ilosc_pkt + 1;
          delete  pu1; 
}

kolizja natepuje bo punkty dodaje ale delete pu1; nie rozwiazuje mojego problemu ;/ (kostka dalej
jest na planszy ) . Jesli ktos miej wiecej wie jaki moze byc powod takiego dzialania prosze o pomoc:)

Z gory dzieki i pozdrawiam.

0

a nie mozesz po prostu po kolizji na mapie zmienic tej dwojki na jedynke..?

0

robisz tablice jednowytmiarowa z punktami na mapie 9kostkami) wartośc bool

true to jest klocek flse nie ma
procedura rysujaca for .... if tablica[i] == visible { rysuj kostke}

0

a co to wnosi ponad to o co ja pytalem i ponad to co on juz wysmazyl? :)

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