Hi folks, how to move a object, not in draw()?
I make a function ship(), how can I make the ship() move from one point to another point slowly ? Is there any function relate to time, for example ship() can move from point (0, 0) to point(100, 100) druing 5 seconds ?
Thanks.
Welcome to the forum.
Going to have to be more specific, thread() can be used to run things outside draw, but its an asynchronous function.
Hello!
Welcome to the forum!
A sketch like this https://www.processing.org/examples/linear.html can run in draw() but also in ship(), when ship() is called from draw().
When you add only small numbers, the ship moves slowly.
Movement with timer
To have a precise movement during 5 seconds, you have to put some thoughts in.
You could set a timer int timerStart=millis();
Then the formula millis()-timerStart gives you the time since the ship started:
timeSinceStart=millis()-timerStart;
Then you can calculate the amt value for lerp:
amt = map(timeSinceStart, 0, 5000, 0,1); // amt is between 0 and 1
Don’t forget to set amt to 1 once 1 is reached (otherwise it runs on I think and goes beyond 100,100).
then say
shipX=lerp(0,100,amt);
shipY=lerp(0,100,amt);
to get the ship position between 0 and 100 for both x and y.
Regards, Chrisir
Hi sir. very appreciate for your reply, i have never try thread(), it looks a advanced topic to me, but i wll try.
Hi sir, thank you for your so detail help, i will try your idea in my project, thanks for your time.