Documentation technique des fonctions + Chronomètre en texte

En essayant de créer un chronomètre pour mon essai de jeu, j’éprouve quelques difficultés à comprendre ce que la fonction TimeFromStart() renvoie comme valeur …

Avec cette formule, j’obtiens un décompte des minutes fantaisiste, alors que les secondes et centièmes sont bons, et je n’en comprends pas la cause.

“0”+ToString(int(TimeFromStart()/60))+":"+ToString(int(TimeFromStart()%59))+":"+ToString(int((TimeFromStart()%1)*99))

D’où ma demande, ou plutot ma question, où trouver la doc technique des fonctions de GD ?
Un genre de doc Java ou C++ pour ceux qui connaissent.
Je ne l’ai pas trouvée dans l’aide, et ce serait bien utile pour savoir les in et les out des fonctions “core” du logiciel, histoire de ne pas patauger à deviner qu’est-ce qui est attendu ou renvoyé.
A moins que ce ne soit marqué quelque part sur le site ?

PS : Oui, je sais, c’est un truc chiant à faire, et encore plus à maintenir. Mais c’est malheureusement un truc important.

EDIT :

Je crois que je viens de cerner le problème dans ma fonction …
Le souci est la fonction int() qui arrondi au supérieur.
Dès que la minute est > à 0.5, ça devient = 1.
Il y a un moyen de contourner ce problème ?

"0"+ToString(int((TimeFromStart()/60)-0.5)))+":"+ToString(int(TimeFromStart()%59))+":"+ToString(int((TimeFromStart()%1)*99))

Ce devrait marcher.
Y a pas toujours besoin de la doc avec un peu de bidouillage on y arrive.

Oui :

trunc(x)

( Bon, j’avoue, c’est pas documenté :mrgreen:
Mais peut être mieux que documenter ça, il faudrait que je rajoute un bouton dans la liste des expressions mathématiques disponibles. )

J’avoue qu’il manque un peu de documentation sur les fonctions disponibles pour les expressions.
Mon but est que le logiciel soit dans la mesure du possible suffisant à lui même : Par exemple, les actions et conditions n’ont (plus) une page d’aide pour elles seules, car bien souvent la description suffit. Si ce n’est pas le cas, il est probable que le concept de la condition/action soit expliqué dans l’aide, rubrique Fonctionnalités intégrées et extensions. ( Ou alors dans l’aide relative à l’extension si c’est une extension non officielle ).
A l’époque où j’avais fait une page d’aide pour chaque action/condition, cette page d’aide ne faisait souvent pas grand chose à par reprendre la description.

En programmation, on a en effet des outils pour générer de la documentation. Avec Game Develop, j’aime à croire que le logiciel peut servir lui même de documentation en affichant toutes les infos nécessaires.
Mais oui, j’essayerai de rajouter des infos sur les expressions mathématiques de base. :slight_smile:

J’étais arrivé à une solution proche entre temps.
Mais c’est quand même pas évident pour un néophyte d’arriver à ce bricolage alors que c’est une fonction “basique” (on a tous besoin d’afficher un chrono :stuck_out_tongue: ).

J’ai vu que GD proposait la création de modèles d’évènements.
Il y a donc moyen de partager des blocs d’instruction entre nous pour des fonctions qui reviennent souvent.
Ce sera surement plus efficace que des extensions, car pas besoin de mettre le nez dans les DLL.

Et ben voilà ! :slight_smile:

J’étais tombé sur la fonction VAL(), mais j’ai l’impression qu’elle n’est plus reconnue par les versions récentes …

Merci à tous les deux.

Pour continuer à être chiant, pourquoi pas un post en sticky qui listeraient toutes les commandes/fonctions non accessibles depuis l’interface.
Je ne sais pas si ça diminuera le nombre de questions, mais ça simplifiera les recherches. :stuck_out_tongue:

Joyeux Noel au passage.

Pas forcément, car en mettant le nez dans les dll, tu crée de nouvelles possibilité pour GD, qui sont en plus très rapide (le code C++ est très rapide)
Alors que les modèles d’événements sont un ensemble d’événements, mais les évènements sont moins rapide que de faire du C++. :wink:

Ce n’est pas le même but, les extensions permettent d’augmenter les possibilités offertes par Game Develop, les modèles d’évènements facilitent la création.
Par exemple donc, une extension pour afficher un chronomètre sous la forme heure/minute/seconde ne sert strictement à rien ( Pire, c’est du temps de développement gâché ), mais un modèle d’évènement est tout à fait approprié.

J’ai mis un article sur le wiki qui contient un copier-coller ( en anglais ) de toute les fonctions qui sont supportées par l’analyseur d’expression mathématique utilisé par Game Develop : compilgames.net/wiki/doku.ph … isponibles

C’est bien ce que je craignais: Maintenant tout viens en Anglais sur GD… :frowning:

J’ai même pas pris le temps de traduire ça vu l’utilité (assez) réduite que ça a, et vu que les descriptions des fonctions ne rajoute pas grand chose. ( L’important est le nom des fonctions )

Tu ne devrais pas craindre l’anglais comme ça ( D’ailleurs j’aimerai bien savoir les autre fois où tu m’a vu donner une ressource seulement en anglais à part celle ci. ), c’est peut être la meilleure chance pour que Game Develop gagne en visibilité et en utilisateurs.

Désolé les gens …

Trunc() n’est pas reconnu par GD.
Il refuse de valider la formule, prétextant qu’il y a une erreur.

J’ai aussi essayé la formule bricolée par Orion-Pyro, mais il y a à peu près 2 secondes d’erreur (je précise que je gère l’ajout de zéro pour les nombres inférieurs à 10, ce qui peut décaler un peu le temps de traitement).

Une autre solution ? :neutral_face:

La solution est de NE PAS mettre de majuscule au T de trunc. :wink:

zyva!!!1!11!
koman ki mtret de fonbou lui!!1!

J’avais essayé les deux, mais ça ne passe pas.
GD me sort une “fonction non reconnue” et refuse de valider la formule, même en la tapant directement dans la case Valeur.
Bien sûr, j’ai aussi essayé trunc(2.5), mais même résultat.
Apparemment, trunc() n’est pas listée dans ses fonctions autorisées. :nerd:

Je regarde ça quand je peux.

Exact, l’analyseur d’expression mathématique n’a pas cette fonction dans la version qu’utilise GD :astonished:

Mais on peut se débrouiller sans. Vu que tu travaille seulement avec des nombres positifs, la fonction floor ( arrondi au nombre le plus petit ) fera très bien l’affaire à la place de int.
A noter qu’il faut faire %60 et non pas %59 pour les minutes :

"0"+ToString(floor(TimeFromStart()/60))+":"+ToString(floor(TimeFromStart()%59))+":"+ToString(floor((TimeFromStart()%1)*99))

Tien puisque on en parle, 4ian pourquoi prend tu la case en compte ?
sa pose pas mal de soucis des fois non ?
pourquoi ne pas enlever ce petit problème ?