Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void SmoothMove(int X, int Y, int moveTime)
- {
- if (moveTime <= 0) moveTime = 500; else moveTime *= 1000;
- if (moveTime > 30000) moveTime = 30000;
- double rateDelay = 1000 / 60; // 1 sec div by framerate (60)
- int stepsCount = (int)(moveTime / rateDelay);
- double pos = 0;
- int posX = 0, posY = 0;
- int oldX = 0, oldY = 0;
- for (int i = 1; i <= stepsCount; i++)
- {
- oldX = posX;
- oldY = posY;
- pos = -(Math.Cos(Math.PI * i / stepsCount) - 1) / 2;
- posX = (int)(X * pos);
- posY = (int)(Y * pos);
- Move(posX - oldX, posY - oldY);
- Thread.Sleep((int)rateDelay);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement