[英]enable function at timer stop c#
我想這個問題已經被問了1000遍了,但我不知道我做錯了什么。 我在C#中使用計時器。 如果過期,則應將值設置為1以啟用其他功能。 我的意圖是阻止一個功能,直到計時器計時。 如果計時器停止,則應啟用新功能。
using System.Timers;
public float testNumber;
private Timer timer;
void Gearup ()
{
if (currentGear < 5) {
currentGear = currentGear + 1;
timer = new Timer ();
timer.Interval=2000;
timer.AutoReset = true;
timer.Start();
testNumber = 10;
}
if (timer.Enabled != false) {
testNumber = 1;
}
你們能幫我嗎? 每次測試代碼時,測試編號都會立即設置為1。請保持謙虛,我知道我是菜鳥。
更新問題:我的問題是,我的游戲角色應該在游戲中換擋。 一旦換檔,就不應允許角色將其向右移。 這就是為什么我想在短短幾秒鍾內阻止shift函數。
因此,您需要以兩秒的間隔啟動一個計時器。 計時器結束后,您要將變量testNumber設置為1。
這種情況只會發生一次,然后停止。
然后,應將AutoReset屬性設置為false,並為Elapsed事件添加一個事件處理程序。
testNumber = 10;
Timer timer = new Timer();
timer.Elapsed += (s, o) =>
{
Console.WriteLine("Timer elapsed");
testNumber = 1;
};
timer.Interval = 2000;
timer.AutoReset = false;
timer.Start();
現在,您無需停止檢查任何內容。 繼續執行從Gearup方法退出的代碼。 間隔時間段過后,全局變量testNumber將設置為1。
計時器啟動時timer.Enabled
設置為true。 然后您的程序跳入
if (timer.Enabled != false) {
testNumber = 1;
}
塊。 因為timer.Enabled 不等於 false,所以它是true ! 你必須去挑戰
if (timer.Enabled == false) {
testNumber = 1;
//for timer restart use:
timer.Start();
}
要么
if (timer.Enabled != true) {
testNumber = 1;
//for timer restart use:
timer.Start();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.