Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1548 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Problème de logique (boucle infinie)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de logique (boucle infinie)

n°2302137
Quentoche
It's time to buzz the tower.
Posté le 17-06-2017 à 10:27:54  profilanswer
 

Bonjour à tous,
 
Je m'arrache les cheveux sur un problème depuis quelques jours qui devrait pouvoir se résoudre pas un peu de logique j'espère.
J'ai une boucle qui tourne à chaque image d'un jeu et je voudrais créer un objet lorsque que mon personnage entre dans certaines zones que j'ai répertorié dans un tableau.
Quand je rentre dans une zone, le programme crée un objet à chaque image, on fait donc planter normal.
Si j'ajoute un trigger en bool et que je le mets à false une fois l'objet créé, je ne peux en créer qu'un, même si j'entre dans une autre zone où je devrais en créer un autre.
Voici du pseudo-code :

Code :
  1. trigger=true
  2. while(true) //symbolise la boucle qui tourne a chaque image du jeu
  3. {
  4. for(int i=0;i<longueur du tableau des zones;i++)
  5. if(joueur entre dans la zone)
  6. {
  7.     if(trigger)
  8.     {
  9.         creer objet
  10.         trigger=false
  11.     }
  12. }
  13. }


 
Une idée pour contourner le problème ?
 
Merci !!

mood
Publicité
Posté le 17-06-2017 à 10:27:54  profilanswer
 

n°2302141
MaybeEijOr​Not
but someone at least
Posté le 17-06-2017 à 14:02:28  profilanswer
 

Pas certain d'avoir compris le problème. Tu veux dire que tant que le joueur reste dans la zone, un objet est créé à chaque image et tu voudrais qu'il n'en soit créé qu'un? Dans ce cas là change ta clause de "joueur entre dans la zone", typiquement je supposes que dans cette clause tu ne fais que vérifier que si le joueur est dans la zone alors qu'en vrai tu veux savoir s'il vient d'y entrer. Il faut donc aussi vérifier sa position antécédente.
L'autre technique reprenant ton trigger c'est que tant que le trigger est false alors tu vérifies si le joueur quitte la zone, une fois la zone quittée tu passes le trigger de nouveau sur true. Mais cela pose un problème de passage d'une boucle à une autre car quand ton trigger redevient true ça veut dire que le joueur est déjà dans la nouvelle zone alors que quand il passe sur false il est aussi déjà dans une autre zone.
 
ex :
Zone 0
Zone 1
Zone 2
 
Joueur passe de Zone 0 à Zone 1, l'objet est créé, trigger passe sur false. Le joueur entre dans Zone 2, trigger passe sur true. L'objet n'est pas encore créé, ce n'est qu'en repassant dans la première boucle que l'objet va se créer, ce qui crée un petit décalage.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2302142
Quentoche
It's time to buzz the tower.
Posté le 17-06-2017 à 14:17:29  profilanswer
 

Merci pour les éléments de réponse !
J'ai été peu clair en effet.
J'ai un seul tableau avec beaucoup de coordonnées. Dans la boucle for (qui est unique, du coup), je compare la position du joueur et celles des coordonnées présentes dans le tableau. Quand la distance est inférieur à un certain seul, je veux qu'il me crée les objets (un seul chacun donc) présents dans cette zone.
 
La première idée serait la plus intéressante, non?


Message édité par Quentoche le 17-06-2017 à 14:48:21
n°2302146
MaybeEijOr​Not
but someone at least
Posté le 17-06-2017 à 16:31:31  profilanswer
 

Cela dépend aussi du fait que les objets disparaissent ou non après. Par exemple, si ton objet ne disparaît pas, tu peux aussi supprimer la zone de ton tableau.
 
La solution la plus adaptée je ne sais pas, ça dépend vraiment de comment est gérée l’exécution de ton code.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Problème de logique (boucle infinie)

 

Sujets relatifs
Boucle taille fichiers et lancementProblème de lecture de son
Problème "UPDATE" SQLProblème syntaxe VBA
Problème "end" attendu[résolu]problème comparaison Php/MySql
Problème de paramètres Java en SQLJ (JDBC)Problème de parsing JSON
Problème de code HTML/CSS + Hébergement chez soi[C] Problème de compilation entre emcc et OpenSSL (Résolu)
Plus de sujets relatifs à : Problème de logique (boucle infinie)



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR