Il me semble bien détruire les emplacements mémoires alloués une fois inutilisés...
voici une branche de code qui construit un pointeur pour tirer un projectile :
for (int i = 0; i < canonvec.size(); i = i + 1)
{
if (canonvec->isfiring() == true)
{
Bullet* ptr;
ptr = new Bullet("images/bullet.png", { canonvec->getposx(),canonvec->getposy() }, 60, 38);
canonbulletvec.push_back(ptr);
ptr->playcanonbulletmusic();
canonvec->setisfiring(false);
}
if (canontime.asSeconds() < shootingtiming2)
{
}
else
{
canonvec->setisfiring(true);
canonclock.restart();
}
}
Voici la sequence de code qui detruit le pointeur en question des que le projectile "bullet" depasse les bords de l'écran :
for (int i = 0; i < canonbulletvec.size(); i = i + 1) // condition de destruction
{
canonbulletvec->setdegat(200);
canonbulletvec->collision(mario);
canonbulletvec->drawto(gamewindow);
canonbulletvec->shoot(-10,0);
if (canonbulletvec->getposx() < -80) // destruction des canonbullets
{
canonbulletvec = nullptr;
delete canonbulletvec;
canonbulletvec.erase(canonbulletvec.begin() + i);
}
}
si tu peux m'éclairer ce serait génial, je suis novice à la fois en C++ et en SFML (je code depuis 2 mois avec ce langage)
Merci!