So, I have a rectangle “rectangle1”, at 160,160.
I want it to move smoothly to cordinates 160,30, with a duration of about 1 second. (time delay)
I’ve figured out that some basic code to move the shape is
rectangle1.Location = new Point(160,30);
However, when I tried doing a for loop with
rectangle1.Location = new Point(160, rectangle1.Location.Y - 100);
it just moved there instantly. Which I should have expected really. Same occurred with
int count = 0;
while(count != 300)
{
rectangle1.Location = new Point(160, rectangle1.Location.Y -1);
count += 2;
}
So, I assume I need some sort of clock / timer loop, that moves it by x pixels every x milliseconds. Not sure how to do this, so help would be appreciated.
Also, I’m going to be animating two other rectangles horizontally, which will then move up at the same time/speed as rectangle1. I think I’ll have to “delay” rectangle1’s movement until they are in position, correct?
Thanks.
PS: I’ve googled a fair bit, but since I’m not entirely sure what I’m looking for, it wasn’t very fruitful.
If you need smooth movements, it’s great to use timers, threads, backgroundworkers.
Here is what you need to do. Assuming you have the code that increment/decrement x,y points for the shape.
Steps:
set timer interval to for e.g. 100
set an integer int count=0; *
in timer_tick event do the moving work