GDevelopp est trop imprécis^^

Hey! Alors voila j’ai des soucis, jusque là j’avais des moyens alternatifs mais là…
J’ai donc une variable qui augmente très vite de 0 à 100 en 1sec +/-
et je veux jouer un son, à déclancher une fois quand la variable atteint 41 par exemple. Or je n’y arrive pas, car GD actualise la variable de 40.974 à 41.152 par exemple donc ça ne tombe jamais sur 41 pile, comment y remedier? Ou alors comment faire un intervalle pour que le son se débloque de [40;41] ? Merci :slight_smile:

si je ne dit pas de bêtise il y a le moyen d’arrondir un valeur, regarde dans l’éditeur d’expression dans la section “Outils mathématiques” tu trouvera entre autre Ceil(x) ou Floor(x) je crois qu’il y en a d’autre

GDevelop n’est pas imprécis. C’est juste que l’on ne peut pas déterminer tous les nombres par lesquels passent les variables (vu que le jeu tourne à 60 fps, ta variable sera précise au TA_VALEUR_D_INCREMENTATION / 60). Finalement, ce sont les ordinateurs qui sont imprécis.

Pour ton problème, le mieux est de testé si la variable est > 40 et d’ajouter un “Déclencher une fois”.

Et si ça passe directement de 39 à 41 ?

Ouaip mais le pb, c’est que je veux quand la variable est = à 40 puis 80 puis… pour ça que je demandais du coup si un intervalle est possible ^^

On peut arrondir une valeur de pitch d’un son?

Si la variable est > 40 , déclencher le son 1 fois.
Si la variable est > 80 , déclencher le son 1 fois.
et ainsi de suite…

Sinon, pour l’intervalle, tu peux mettre le “40” dans une variable et le multiplier au besoin.

Ça ne marchera pas psk si on déclanche à <40 et <80 beh le <40 est compris dans le <80 :confused:

var >= 40 + déclencher une fois = jouer le son
var>=80 + déclencher un fois = jouer le son
var<=80 + var>40 + déclencher une fois = jouer le son
var<=40 + déclencher un fois = jouer le son

Ça me semble bon

Essaye en faisant une condition pour <40 et une autre condition pour <80

C’est à dire ?
Psk <40 est compris dans <80 et donc si on fait un déclanchement unique, ça le fait juste au <40 et pas au <80

Fait une condition “declencher une seule fois” pour le <40
Et une autre “declencher une seule fois” pour le <80
même si le 80 es compris dans le <40 il ne se declenchera qu’une fois car tu demande “declencher une seule fois”
Essaye sur le logiciel tu verra que ça devrais fonctionner.

C’est ce que j’avais fait à la base ^^ ça ne marche pas :slight_smile: Pour ça que j’ai posté ce post ^^

Lernox a raison, si on fait <40+déclencher une fois et <80+ déclencher une fois, il n’y aura qu’un son car quand la valeur vaudra 20 par exemple, le son sera joué pour l’évènement à 40 et pour celui a 80 vu que ces valeurs sont supérieures à 20. Je pense que vous avez tous fait une faute de frappe, ce n’est pas <40 mais >40 pour que le son se déclenche quand la valeur dépasse 40. Ainsi, si on met >40 et >80 avec des déclencher une fois, il n’y aura pas de risque et ça va marcher puisque la valeur deviendra progressivement supérieure à 40 (=premier son), puis plus tard à 80 (=deuxième son).

Teste avec des > et ça fonctionnera. Même si personnellement je n’aurais pas fait comme ça. :smiley:

Comment aurais-tu fais du coup? ^^

Sinon, tu ajoutes une petite variable de “verrouillage”.

  • Au lancement de la scène, faire variable “verrouillage = 0”
  • Lorsque tu dépasses 40 et que variable verrouillage = 0 : jouer le son 1 fois + faire variable “verrouillage = 1”
  • Lorsque tu dépasses 80 et que variable verrouillage = 1 : jouer le son 1 fois + faire variable “verrouillage = 2”
  • Lorsque tout est fini, faire variable “verrouillage = 0”

Tiens nous au courant :stuck_out_tongue: