AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 [C++][Résolu]Erase vector

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Ancestral
Utilisateur confirmé: Rang *
avatar

Messages : 227

MessageSujet: [C++][Résolu]Erase vector   Dim 2 Aoû 2015 - 17:23

Bonjour, j'ai un probleme dans la conception de mon jeu en C++.
Je ne parviens pas à détruire mes ennemies.

Voici la façon dont je les instancies:
Code:
WorldActions::WorldActions(){
    ...
    for(int i=0; i<nbEnnemies; i++){
        ennemies.push_back(Ennemie());
    }
}
Voici comment je détruits mes ennemies
Code:

void WorldActions::update(){
    ...
    for(int i=0; i< nbEnnemies; i++){
        if (player.collides(ennemies[i]) && !ennemies.empty()){
            ennemies.erase(ennemies.begin()+i);
        }
    }
}
Le programme se lance correctement mais au contact d'un ennemie la console affiche
Citation :
pure virtual method called
terminate calles without an active exception
Aborted (core dumped)

D'où viens le problème, et comment puis-je le résoudre?
Merci


Dernière édition par Ancestral le Dim 2 Aoû 2015 - 18:00, édité 1 fois
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
avatar

Messages : 3324
Localisation : Dans une canonnière wookie.
Projet Actuel :
Wyvup
SpaceShift
Centauri-France


MessageSujet: Re: [C++][Résolu]Erase vector   Dim 2 Aoû 2015 - 17:50

Je pense que le soucis, c'est que tu détruits un élément du vector, donc sa taille diminue de 1, hors ta boucle de va pas de 0 à vector.size mais de 0 à nbEnnemies. Donc la dernière itération tape à une adresse qui n'est plus allouée et ça plante Wink
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
Ancestral
Utilisateur confirmé: Rang *
avatar

Messages : 227

MessageSujet: Re: [C++][Résolu]Erase vector   Dim 2 Aoû 2015 - 18:00

C'est ça! J'en reviens pas d'être passé à côté kill
Merci à toi
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [C++][Résolu]Erase vector   

Revenir en haut Aller en bas
 
[C++][Résolu]Erase vector
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Mot de passe smtp
» [Résolu] MSN vérolé
» [résolu]pc infecté par wwwzuc32.exe
» [Résolu] Photoshop CS2 : tampon
» [ résolu ]à propos de TFC

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Programmation-
Sauter vers: