Bug #683
openUnexpected behavior of the Actor's movement in a loop
0%
Description
Please consider the following code:
Actor "magicien", X=0, Y=0, Image$="lucie.png", EndX=1920, loopmove=True
Do
A$ = Inkey$
If A$ = "p" or A$="P" Then Actor "magicien", ActionMove$="pause"
If A$ = " " Then Actor "magicien", ActionMove$="play"
Loop
If the Actor's movement is interrupted and restored, the movement will start from the interruption point and not from the initial start.
For instance, if the position is X=700 when "pause" is activated, the movement loop will be between x=700 and x=1920, instead of the expected range (0 - 1920).
This can be really confusing.
Updated by Laurant Weill over 3 years ago
Bien vu.
Il est normal que le pause/play se fassent dans la continuité du mouvement mais cela montre un problème sur le loopmove.
merci
Updated by Laurant Weill over 3 years ago
pour faire comme je comprends que vous désirez il faut faire :
Actor "magicien", Image$="lucie.png", EndX=1920, loopmove=True
Do
A$ = Inkey$
If A$ = "s" or A$="S" Then Actor "magicien",X=0, Y=0, ActionMove$="pause", loopmove=True
If A$ = "p" Then Actor "magicien",X=0, Y=0, ActionMove$="play", loopmove=True
Loop
Updated by Stéphane VINCENT over 3 years ago
Laurant Weill wrote in #note-2:
pour faire comme je comprends que vous désirez il faut faire :
Actor "magicien", Image$="lucie.png", EndX=1920, loopmove=True
Do
A$ = Inkey$
If A$ = "s" or A$="S" Then Actor "magicien",X=0, Y=0, ActionMove$="pause", loopmove=True
If A$ = "p" Then Actor "magicien",X=0, Y=0, ActionMove$="play", loopmove=True
Loop
Ce n'est malheureusement pas ce à quoi je pensais.
Personnellement, si je lance une animation en boucle entre la position 0 et 1920 et que celle-ci est mise en pause à la position 700.
Je m'attends à ce qu'elle reprenne depuis la position 700 jusqu'à la position 1920 pour ensuite reprendre sa boucle entre la position 0 et 1920.
Actuellement, le code que j'avais fourni, permet bien une boucle entre 0 et 1920 mais si la pause est réalisée à la position 700, la boucle ne se fera plus qu'entre les positions 700 et 1920 (et non plus entre 0 et 1920).
J'espère que mon explication est désormais plus claire, sinon le plus simple est de lancer mon exemple d'arrêter l'animation vers le milieu, de la relancer et voir ce qu'il se passe.