【发布时间】:2011-10-06 09:16:13
【问题描述】:
我有一个迷宫游戏,我正在尝试一次创建两个计时器。 1st(300秒后退出游戏)
t1.Interval = 30000;
t1.Enabled = true;
t1.Elapsed += new ElapsedEventHandler(hiddenTimer);
public static void hiddenTimer(object source, ElapsedEventArgs e)
{
Console.Clear();
Environment.Exit(1);
}
2nd(每 1 秒显示一次剩余时间(类似于真正的计时器))
t2.Interval = 1000;
t2.Enabled = true;
t2.Elapsed += new ElapsedEventHandler(showTimer);
public static void showTimer(object source, ElapsedEventArgs e)
{
Console.Write(timeLeft);
}
我想全局传递声明 timeLeft 但它说“非静态字段、方法或属性需要对象引用...”
如何正确声明?
【问题讨论】:
-
1 秒 == 1000 毫秒,所以 t1.Interval=300000,加一个 0
-
请发布您的所有代码。您没有发布 timeLeft 的声明。问题很明显,您尝试在静态方法中使用非静态属性。
-
我的两个计时器都在工作,但我在显示 2ndTimer 时遇到问题,因为它是一个迷宫游戏,我的光标一直在移动,这就是时间跟随我的光标的原因。有什么建议我该如何解决这个问题?
-
你写的时间怎么样?你真的在使用 Console.WriteLine 吗?
-
然后你去写时间的时候,保存当前位置,把位置移动到你想显示时间的地方,写下时间,然后恢复位置。