Quantcast
Viewing all articles
Browse latest Browse all 21942

usuwanie konkretnych elementów c++ & sfml

Tworzę grę, w której jesteśmy statkiem kosmicznym potrafiącym strzelać (w kodzie: kula). Potwory idą z góry na dół i my musimy je zestrzelić by nas nie zabiły. A teraz problem: gdzie mam błąd? kod:

wykrycie kolizji:

if (potwory.size()!=0)   //potwory - wektor z przeciwnikami
        {
            for (int i=0; i<potwory.size(); i++)   // sprawdzenie z kolei kolizji ze wszystkimi potworami 
            {
                if (kula.getGlobalBounds().intersects(potwory[i].getGlobalBounds()) && potwory.size() <= 5)   // wykrycie kolizji
                {
                    potwory.erase(potwory.begin() + (i));    //usunięcie z wektora wykrytego trafionego potwora
                    std::cout<<"potwory: "<<potwory.size()<<std::endl;    //test.....
                }
            }
        }

rysowanie:

 for (std::size_t i = 0; i<potwory.size(); i++)  
        {
            okno.draw(potwory[i]);
            potwory[i].move(0,0.07f);   //ruch potworów
            if (potwory[i].getPosition().y >= height)    //height to wysokość; czyli gdy wyjdą poza mapę
            {
                potwory.erase(potwory.begin(), potwory.begin() + 1);   //usunięcie owego potwora
                std::cout<<"potwory: "<<potwory.size()<<std::endl;   //test......
            }

        }

A teraz: kolizja nie jest nawet wykrywana. Oprócz 1 wyjątku. Gdy wygeneruje kulę gdy potwór wleci w mojego bohatera (jeszcze nie wprowadziłem porażki), czyli wygenerujemy kulę W ŚRODKU potwora, to działa tak, jak działać powinno. Proszę o pomoc.


Viewing all articles
Browse latest Browse all 21942

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra