2016-08-12 138 views
0

我想要一個不會每秒計數的計時器。我希望它運行得更慢一個時鐘的慢速計時器

timer = timer + Time.deltaTime; 
    int itimer = (int)timer; 
    int minutes = itimer % 60; 
    int hours = itimer/60; 
    string time = hours.ToString() + ":" + minutes.ToString().PadLeft(2, '0'); 

這是現在的代碼。時鐘現在在19:20開始,我希望分鐘計數器每4秒鐘上升一次(我仍然需要計算確切的時間)。我試着做「Time.deltaTime * 0.9」,但代碼不起作用。我怎樣才能最好的減慢這個代碼?此外,當它是20:00(或轉換前1200),我想要發生的事情,所以我仍然需要訪問該號碼 謝謝

+0

因爲你在談論'Time.deltaTime'我假設你正在使用unity3d,請確保在提問時包含相關標籤。 –

+0

只需啓動一個計時器,該計時器會經過第二秒,並有一個DateTime存儲起始時間。在每個計時器事件中,只需調用日期時間方法AddMilliseconds()並添加一些(儘可能多的)多於1000個的毫秒100 –

+0

您說*「但代碼不起作用」*當您嘗試時發生了什麼,行爲不正確?另外@ThomasVoß這是團結的,他不是在談論真正的掛鐘時間,而是在遊戲時間。而在比賽時間裏,1秒的掛鐘時間= 1分鐘。 –

回答

1

可能你遇到的問題是一個鑄造錯誤,當你嘗試分配結果回到timer。這是因爲在默認情況下,當您做0.9時,它將它作爲double,而您的變量timer是一個浮點數。在數字的末尾添加f以將其標記爲浮動,並且它應該可以工作。

timer = timer + Time.deltaTime * 0.9f; 
int itimer = (int)timer; 
int minutes = itimer % 60; 
int hours = itimer/60; 
string time = hours.ToString() + ":" + minutes.ToString().PadLeft(2, '0'); 
+0

哦!是!可能就是這樣。我怎麼能忘記這一點。我覺得現在就是這樣一個虛擬的問題。我很抱歉打擾任何閱讀此內容的人。我應該知道這一點 –