Votre jeu bloque ? Vérifiez vos évènements "Tant que"

Si votre jeu bloque Game Develop, vous obligeant à le fermer et à le reouvrir, vérifiez, si vous utilisez des évènements du Type “Tant que”, que ceux ci sont corrects :

Les évènements “Tant que” se répèteront à l’infini sans jamais s’arrêter si les conditions associées ne sont jamais remplies.
Par exemple, si vous faites :

Tant que La position de l'objet Heros est < à 60 Répéter : Faire +1 à la variable Score.

Alors cet évènement va être répété à l’infini et bloquera le jeu, et Game Develop. En effet, à partir du moment où la position de l’objet Heros sera inférieure à 60, l’évènement sera répété tout le temps à la suite, sans en sortir, puisque la condition sera toujours vraie.

La solution est tout simplement d’utiliser un évènement standard :

Conditions : La position de l'objet Heros est < à 60 Actions : Faire +1 à la variable Score.

Vérifiez toujours que vous autorisez le jeu à pouvoir sortir de l’évènement. Une utilisation appropriée est par exemple :

Tant que La variable Creation est < à 10 Répéter : Faire +1 à la variable Creation. Créer un objet

Cet évènement crééra dans ce cas un objet, puis augmentera la variable Creation, tant que cette dernière sera inférieure à 10.

Pour plus d’informations sur ce genre de problème, lisez cet article de Wikipédia sur les boucles infinies : fr.wikipedia.org/wiki/Boucle_infinie

C’est vrai que j’en ai bavé avec les “tant que” pour faire l’exemple que je te donner :slight_smile:

oui item, j’ai jamais rien piger a ce truc, c’est trop dangeureux 4ian, tu devrais faire un truc pour sécuriser le truc :slight_smile:

Nan dayvid :slight_smile:
je voulais juste dire que j’avais eu du mal à l’utiliser au début…
Sinon c’est un évènement très très utile notamment pour améliorer la puissance :slight_smile:

Moi je trouve sa nul car en faite juste ce qui ce trouve entre “répéter tans que” et “répéter”
le reste du code n’est même plus exécuter donc c’est a signe de confusion sa aussi
il ne pourrais pas répéter en plus du code ?

Edit: quand tu fait: "“répéter tans que”
en faite juste ceci sera exécuter non ?, le reste du code est bloquer et sa pose problème
car si tu met un chronomètre, sa marche pas, exemple:

répéter tans que: la variable “abc” est < à 100
répéter:
si le chronomètre “a” est supérieur a 1 seconde >>> remettre le chronomètre “a” a zéro
>>> faire + 1 a la variable “abc”

Alors je suppose que c’est parce que le chronomètre ne s’agrémente jamais puisque le code est suspendu sauf dans la boucle, dans pure basic, je sais gérer sa mais pas dans game develop :stuck_out_tongue:

Je n’ai rien compris.
Et attention à l’orthographe ! :wink:

Ayant encore eu un rapport de “bug” lié à l’utilisation d’un évènement Tant que, j’ai mis une protection par défaut sur ces évènements : Au bout de 100 000 itérations, un message demandera au développeur si il veut arrêter l’aperçu ( ou s’il souhaite poursuivre l’aperçu ) car il y a de grande chance qu’une boucle infinie soit entrain de se faire.
On peut choisir d’activer ou non le message dans l’éditeur d’évènement ( Par défaut, il est activé ) en double cliquant sur l’évènement.

La protection n’a absolument aucun impact sur les performances lorsque désactivée ( Le code gérant cette protection n’existe alors même pas ) ( Et la protection n’est bien sur pas activée une fois le jeu compilé, là aussi le code là gérant n’existe même pas. )

Ah ça c’est vraiment une bonne chose ! :slight_smile: