Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[DIR MX] barre de progression inversée ?

4 réponses
Avatar
Twinky
Hello

j'ai réalisé une barre de progression qui indique le temps
restant pour répondre à une question, dans le sens traditionnel
cad de gauche à droite pas de probleme, mais c'est dans l'autre
sens que ca bidouille...

je m'explique pour avoir ma progressbar, j'utilise 2 bitmap
le 1er (cadre noir, degradé vert=>rouge) en fond avec bordure
et le 2em (rectangle mono couleur) par dessus d'une largeur
de 100 px et non de 1 px ( le regpoint est situé en Haut à Droite
de l'image 2 et non en Haut à gauche ) l'image 2 sert d'incrémentation,
mais voila, je veux partir de 100 pour aller à 0, mais c'est l'effet
inverse qui se produit...

voir la section ******

Merci pour l'aide apportée

Twinky


--////////////////////////////////////////////////// script de comportement /////////////////////////////////
global QuestionDelay

on beginsprite
QuestionDelay = 30 -- 30 sec par question
startTimer -- remettre Timer à zero
end if

on exitframe
-- décompte du Timer une fois Timer atteint on passe à la frame suivante
if float(the timer) > (float(60) * float(QuestionDelay)) then
-- go to marker(FrameLabelReponseList[IndexFrameLabel])
go the frame +1
else
-- progression de la progressbar // 100 = largeur de la progressbar
-- progression de 0 à 100 // sens de 0 ===> 100
--sprite(54).width = 100 / ((float(60) * float(QuestionDelay)) / float(the timer))

-- progression de 100 à 0 // sens 100 ===> 0
******* ici ca marche bien de droite à gauche mais je pars de 0 pour arriver à 100 alors
que je souhaite faire l'inverse. Partir de 100 et aller à 0 *******
sprite(54).width = 100 / (float(60) * float(QuestionDelay)) * float(the timer)

put "largeur progress"&&sprite(54).width

-- afficher le nb de sec
TempsEcoule = QuestionDelay / ((float(60) * float(QuestionDelay)) / float(the timer))
--if TempsEcoule < 10 then TempsEcoule = "0"&TempsEcoule
member("temps ecoule").text = string("Temps écoulé"&&TempsEcoule&&"sec")
--put "Temps écoulé"&&TempsEcoule
end if
go the frame
end

4 réponses

Avatar
Ned
"Twinky" a écrit dans le message de
news:c652om$c2d$
| Hello
|
| j'ai réalisé une barre de progression qui indique le temps
| restant pour répondre à une question, dans le sens traditionnel
| cad de gauche à droite pas de probleme, mais c'est dans l'autre
| sens que ca bidouille...
|
| je m'explique pour avoir ma progressbar, j'utilise 2 bitmap
| le 1er (cadre noir, degradé vert=>rouge) en fond avec bordure
| et le 2em (rectangle mono couleur) par dessus d'une largeur
| de 100 px et non de 1 px ( le regpoint est situé en Haut à Droite
| de l'image 2 et non en Haut à gauche ) l'image 2 sert d'incrémentation,
| mais voila, je veux partir de 100 pour aller à 0, mais c'est l'effet
| inverse qui se produit...
|
| voir la section ******
|
| Merci pour l'aide apportée
|
| Twinky
|
|
| --////////////////////////////////////////////////// script de
comportement /////////////////////////////////
| global QuestionDelay
|
| on beginsprite
| QuestionDelay = 30 -- 30 sec par question
| startTimer -- remettre Timer à zero
| end if
|
| on exitframe
| -- décompte du Timer une fois Timer atteint on passe à la frame
suivante
| if float(the timer) > (float(60) * float(QuestionDelay)) then
| -- go to marker(FrameLabelReponseList[IndexFrameLabel])
| go the frame +1
| else
| -- progression de la progressbar // 100 = largeur de la progressbar
| -- progression de 0 à 100 // sens de 0 ===> 100
| --sprite(54).width = 100 / ((float(60) * float(QuestionDelay)) /
float(the timer))
|
| -- progression de 100 à 0 // sens 100 ===> 0
| ******* ici ca marche bien de droite à gauche mais je pars de 0 pour
arriver à 100 alors
| que je souhaite faire l'inverse. Partir de 100 et aller à 0 *******
| sprite(54).width = 100 / (float(60) * float(QuestionDelay)) * float(the
timer)
|
| put "largeur progress"&&sprite(54).width
|
| -- afficher le nb de sec
| TempsEcoule = QuestionDelay / ((float(60) * float(QuestionDelay)) /
float(the timer))
| --if TempsEcoule < 10 then TempsEcoule = "0"&TempsEcoule
| member("temps ecoule").text = string("Temps
écoulé"&&TempsEcoule&&"sec")
| --put "Temps écoulé"&&TempsEcoule
| end if
| go the frame
| end



pas le temps de me plonger dans to code, mais une ptite suggestion :

sprite(54).width = 100 - (...ce que tu faisais déjà ...)

à priori ça devrait "inverser" la progression, non ?

--
------------------
Ned
----------------------------------------
Bien faire et laisser braire
----------------------------------------
Avatar
Twinky
Hello Ned

merci pour ta réponse
mais non le sprite(54).width = 100 - ( marche pas )
ca donne un effet clignottant avec une barre
de progress de 30452 pixel de large
en fait la largeur est aléatoire comme s'il y avait
un random()

je continue mes formules, ya pas de raison pour que
cela ne marche pas

Twinky
Avatar
Twinky
thx again Ned

ca progresse avec cette ligne, ca démarre bien à 100 jusqu'à 0
mais la progressbar défile encore trop vite, ya plus qu'à chercher le frein
et ca sera bon :o)
sprite(54).width = 100 - (float(the timer) / (float(60) / float(QuestionDelay)))

et non pas comme j'avais mis
sprite(54).width = 100 / (float(60) * float(QuestionDelay)) * float(the timer)

Twinky
Avatar
Twinky
Hello

et quelques heures plus tard...

voila la bonne ligne
sprite(54).width = 100 - (100 / ((float(60) * float(QuestionDelay)) / float(the timer)))

pourquoi chercher de midi à minuit sachant qu'en plus
j'avais pratiquement la soluce sous les yeux avec cette ligne la
-- afficher le nb de sec
TempsEcoule = QuestionDelay / ((float(60) * float(QuestionDelay)) / float(the timer))


Twinky