タイマーのwhileループを遅くする助けが必要です。私はプラットフォームゲームを作っており、ピクチャーボックス(ブロック)を前後に移動したいと思っています。これは成功しました。しかし、ブロックは非常に速く動いているので、それ以外のことは遅れてしまいます。どんな助けもありがとう!タイマーの中でwhileループを遅くする方法
private void timer2_Tick(object sender, EventArgs e)
{
while (block.Left > (ClientSize.Width-ClientSize.Width))
{
block.Left -= 1;
if (block.Left == (ClientSize.Width - ClientSize.Width))
{
break;
}
}
while (block.Right < ClientSize.Width)
{
block.Left += 1;
if (block.Right == ClientSize.Width)
{
break;
}
}
}
}
遅延を注入するのに 'Thread.Sleep(1000)'や 'Task.Delay'を使うことができます –
あなたの質問に似たものがあります:[これはおそらく役に立ちます](http://stackoverflow.com/questions/) 3486672/c-sharp-timer-slow-down-a-loop) –
whileループを取り除き、単一のタイマーティックがブロックを1つずつインクリメントするようにします。 1より大きい必要がある場合は、* velocity *変数が必要です。 –