Эффект «замедления движения» в C # - PullRequest
0 голосов
/ 27 февраля 2012

Мне нужно увеличить целое число, но я хочу уменьшить скорость, с которой оно увеличивается. Скажем, например, у меня есть int, равное 0, я бы хотел, чтобы этот int в конечном итоге достигал 100, но постепенно увеличивал его. У кого-нибудь есть опыт с этим?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

hcb-ответ работает на 100, но для другого значения потребуется другое значение замедления.

Более обобщенный ответ - использование синуса, что означает, что облегчение будет одинаковым независимо от конечного значенияВы хотели или сколько бы шагов вы ни предприняли.

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());
     }
}
1 голос
/ 27 февраля 2012

Как это?:

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;
}
...