我爲我的編程課在C中做遊戲,我必須在遊戲中放置一個時間倒計時,但是我不能使它正確工作,因爲如果提供倒計時功能和延遲(1000),它適用於倒數計時,但不適用於遊戲,因爲它使得每次移動都等待1秒。同時爲一個遊戲運行兩個循環 - C
到目前爲止我的代碼是
while(tempo > 0)
{
tempo_na_tela(&tempo);
contador_tempo(&tempo);
if(kbhit())
{
mover_refem(getch(), p_refem, &refem.px, &refem.py,
numero_inimigos_na_tela(n, in1));
}
mover_inimigo(n, p_terrorista, in1);
}
功能tempo_na_tela(..)
把時間字符串在屏幕上時,contador_tempo(..)
是倒計時,mover_refem(...)
是移動遊戲角色的功能,並且mover_inimigo(..)
是隨機移動屏幕上敵人的功能。
我需要將tempo_na_tela
和contador_tempo
函數放在一個循環中,與另一個循環同時運行,運行移動函數。
我該怎麼辦?
歡迎來到StackOverflow!請嘗試正確設置代碼的樣式(如果需要,請在編輯器中使用幫助) – Eregrith
聽起來像需要將程序構建爲事件循環。 –
「我需要將tempo_na_tela和contador_tempo函數放在一個循環中」 - 嗯,它們在*一個循環*(while(tempo> 0)'構造)中。至少看起來真正的問題是'contador_tempo' *等待一秒鐘,從而拖延了這個循環的目的。如果您可以建立起始時間,根據該時間計算到期時間,然後檢測*當前時間*何時達到或超過您的到期時間並相應地中斷循環,則根本不需要延遲。 – WhozCraig