Améliorations des chronomètres

Bonjour,

Pour certaines scènes, je peux avoir un chronomètre par objet (ex: chronomètres “Brique0”, “Brique1”, etc.)
En fonction du jeu, les objets sont supprimés et créés (et donc de nouveaux chronomètres sont créés)… Mais, les chronomètres, eux ne sont jamais supprimés et subsistent jusqu’à la fin de la scène…

S’il y a beaucoup de créations et de destructions d’objets, on se retrouve vite avec un grand nombre de chronomètres “orphelins” (“Brique0” continue de s’incrémenter même si l’objet “Brique 0” n’existe plus depuis longtemps…)

Deux solutions pour éviter cela seraient:
“Facile” (hum… :wink:): Rajouter une Action "Supprimer un chronomètre (<nom du chronomètre>). C’est le programmeur du jeu qui décide quand détruire le(s) chronomètre(s) associés à un objet… avant la destruction de l’objet lui même
“Plus compliqué”: Rajouter “chronomètre” dans l’arborescence des conditions “Tous les objets → chronomètre”. Cela permettrait d’attacher réellement un (ou plusieurs) chronomètre(s) à un objet => Si l’objet est détruit au cours du jeu, le(s) chronomètre(s) associé(s) à cet objet est(sont) automatiquement détruit(s) par GD

Il serait également utile d’avoir des chronomètres globaux (comme il existe dans GD des variables et des objets globaux)
Le fait de changer de scène n’affecterait pas ces chronomètres globaux (qui continueraient à s’incrémenter)
Ou alors (mais les chronomètres globaux seraient “je pense” plus “simples” :sunglasses:) permettre:
de copier la valeur actuelle d’un chronomètre dans une variable globale (juste avant de changer de scène)
d’affecter une variable initiale non nulle à un chronomètre (quand on rentre dans la nouvelle scène, on associe à un chronomètre de la scène la valeur que l’on avait sauvée dans la variable globale)

Voila, tout cela devrait permettre d’atteindre le “nirvana du chronomètre” dans GD :laughing:
A bientôt, cordialement,
Damien.

ça serait bien en effet, pour les chronomètres Globaux, ce n’est pas déjà le cas?
Essaye:

Scene1: EV1: C > Lancement de la scène A > Remettre a 0 le Chronomètre: "Time" EV2: C > "Time" est supérieur a 3S A > Aller a la scène: "Scene2" Scene2: EV1: C > Si "Time" est supérieur a 3s A > Afficher le texte "Global" en 0;0, couleur 0;0;0 (si le fond n'est pas noir)
Donc, si au changement de scène, tu as immédiatement le texte qui s’affiche, c’est que ton chrono ne s’est pas remis a 0, donc qu’il est Global. :slight_smile:

Pour les chrono par objets, utilise l’horloge du pc à la place.

Première chose, on peut simuler soit même un chronomètre en utilisant une variable et en ajoutant un évènement sans condition et avec pour action: “Faire +TimeDelta() à la variable MonChrono”.
Ensuite, ce qui me semble le plus adéquat avec ce que proposent actuellement les chronomètre, c’est une action “Retirer un chronomètre de la mémoire”.

Oui, et quelle ne plante pas si le chrono n’existe pas :slight_smile:

Je vois pas pourquoi elle planterait.

J’ai ajouté une action pour retirer un chronomètre de la mémoire.

Merci :smiley:

Je l’ai dit juste comme ça :slight_smile:

Je suis débutant, mais pour moi, pouvoir créer les chronomètres avec un bouton “créer un chronomètre” et de l’initialiser (à zéro ou à une autre valeur, comme si on créait et initialisait une variable) serait plus simlple à gérer et à comprendre. Un second bouton démarrer le chronomètre (et qui le ferait compter en mémoire) pourrait être interessant et plus simple à comprendre/à utiliser. Cela pourrait notemment être interessant si on veut indiquer au joueur le temps qu’il a passé sur le jeu, par exemple. Après moi je dis ca, je dis rien. Je sais pas si c’est faisable/applicable. A voir.

Surtout trop long, et pas compatible avec les précédents jeux.