Эффект "замедления движения" в C#
Мне нужно увеличить целое число, но я хочу уменьшить скорость, с которой оно увеличивается. Скажем, например, у меня есть int, равное 0, я бы хотел, чтобы этот int в конечном итоге достигал 100, но постепенно увеличивал его. У кого-нибудь есть опыт с этим?
2 ответа
Решение
Ответ hcb работает для 100, но другое значение потребует другого значения easy.
Более обобщенным ответом будет использование синуса, что означает, что легкость будет одинаковой независимо от того, какое конечное значение вы хотите получить, и сколько бы шагов вы ни предприняли.
private void EaseIn(int easeTo)
{
for (int n = 0; n < easeTo; n++)
{
double degrees = (n * 90) / easeTo;
double easedN = easeTo * Math.Sin(degrees * (Math.PI / 180));
Console.WriteLine("Eased n = " + easedN.ToString());
}
}
Как это?:
for (int i = 0; i <=100; i++)
{
Thread.Sleep(i);
}
Или вот так:
float j = 1;
float ease = 0.005;
for (float i = 0; i <=100; i+=j)
{
j -= ease;
}