I’m trying to get an object to move back and forth between two points. I’ve set variables for the Origin and Destination coordinates, but only the Destination movement works. As soon as it gets there, it doesn’t turn back.
This may just be an example of a common issue in GDevelop where an object may not perfectly fall on the position you are testing for if it is being moved by applying forces. In this case, your sub-event specifies that the position must = the destination positions, whereas you might be better off using > or < to check for a range around that position.
This is why back and forth movement is often done via collision checks with marker objects set at the two positions, as collisions test a range of values around a position.
You could also use the “Lerp” expression (linear interpolation) for movement between two points. Unfortunately the description of the function doesn’t tell very much. It takes three arguments:
Start point
End point
Percentage between the two points (0.0 - 1.0 where 0.5 is right in the middle between the two points)
Should be easier to calculate than using forces.
It would be an action, but anyway it’s not an action, “lerp” is an expression that you have to use in the action to set position, it works this way:
“lerp(A, B, X)” returns a value between A and B in function of X, if X = 0 it returns A, if X = 1 returns B, if 0 < X < 1 it will return a value between A and B. For example for A = 1, B = 2 and X = 0.5 returns 1.5, and for X = 0.8 returns 1.8.
I guess you can use X < 0 or X > 1 to get values out of the range A-B. For example for A = 1, B = 2 and X = 3, it would return 4. If the lerp function doesn’t accept such values (X < 0 or X > 1) you can use your own function: “A + X*(B - A)”.
I have an example here using the lerp function to move back and forth between two points: BackAndForth.gdg (15.5 KB)
Hope it helps
Thanks for the example! However, I tried to open it in GDevelop 4 (the latest non-beta v5 version), and got a warning that the example was created with a newer version. I opened up the events and it was blank.
I then tried to open it in GDevelop 5, but it only allows you to open JSON files - would you be able to send is as a JSON instead? (Assuming you’re using v5)