Home › Forums › Macros › During et InsertSendMessage › Reply To: During et InsertSendMessage
Salut Maxime,
Tu dois changer trois choses :
1 – Tu inverses les valeurs de début et de fin
Declare Local float $startValue$ = 1
Declare Local float $endValue$ = 0
2 – Ici tu prends la valeur max et non pas la valeur min
$targetValue$ = {max($endValue$,$targetValue$ + $increment$)}
3 – Enfin, tu vérifies que la valeur cible est supérieure à la valeur de fin pour autoriser un nouveau tour de boucle
While {$targetValue$ > $endValue$}
Voici la macro finale qui décrémente au lieu d’incrémenter :
//***********************************************************************************
// Set the total duration of the value change
Declare Local int $duration_ms$ = 1000
// Set the start and end value
Declare Local float $startValue$ = 1
Declare Local float $endValue$ = 0
Declare Local int $steps$ = 100
Declare Local float $incrementDuration$ = 0
Declare Local float $targetValue$ = $startValue$
Declare Local float $increment$ = {($endValue$ – $targetValue$) / $steps$}
// calculate the number of needed steps for the current increment
$steps$ = {($endValue$ – $startValue$) / $increment$}
//Post $steps$
Declare Local int $startClock$ = {monotonic_ms()}
DoRepeat
$increment$ = {($endValue$ – $targetValue$) / $steps$}
$incrementDuration$ = { ($startClock$ + $duration_ms$ – monotonic_ms())/ $steps$ }
// Current step value calculation
$targetValue$ = {max($endValue$,$targetValue$ + $increment$)}
//******************** Put the destination here ********************
InsertSendMessage fx1 1 SpeedFloat $targetValue$
WaitDuration {$incrementDuration$}
$steps$ = {$steps$ – 1 }
While {$targetValue$ > $endValue$} //Post {monotonic_ms() – $startClock$}
//***********************************************************************************