我正在尝试通过制作俄罗斯方块控制台应用程序来学习 c#。我有一个游戏板类(代码中的“gb”)和一个块类(代码中的“bl”。)下面的代码是我迄今为止左右移动一个块的代码,但我不能包装我的在我接受用户输入的同时,围绕如何使块落下。
while ((keyInfo = Console.ReadKey(true)).Key != ConsoleKey.Escape)
{
switch (keyInfo.Key)
{
case ConsoleKey.LeftArrow:
currCol = bl.getCol();
if (currCol - 1 >= 0)
{
gb.removeBlock(bl.getCol(), bl.getRow());
bl.setCol(currCol - 1);
gb.putBlock(bl.getCol(), bl.getRow());
Console.Clear();
Console.WriteLine(gb.makeGrid());
}
break;
case ConsoleKey.RightArrow:
currCol = bl.getCol();
if (currCol + 1 <= 9)
{
gb.removeBlock(bl.getCol(), bl.getRow());
bl.setCol(currCol + 1);
gb.putBlock(bl.getCol(), bl.getRow());
Console.Clear();
Console.WriteLine(gb.makeGrid());
}
break;
}
}
我假设 Timer 可能是这样做的方法,但我不知道如何将我的实例传递给 ElapsedEventHandler 的 OnTimedEvent 函数
public static void Main()
{
System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
// Set the Interval to 5 seconds.
aTimer.Interval=5000;
aTimer.Enabled=true;
Console.WriteLine("Press \'q\' to quit the sample.");
while(Console.Read()!='q');
}
// Specify what you want to happen when the Elapsed event is raised.
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Console.WriteLine("Hello World!");
}
计时器是要走的路,还是我应该使用其他东西?如果计时器是我应该使用的,我应该从哪里开始学习如何使用它们?
谢谢!