0
我正在使用GetAsyncKeyState()
來獲取我正在製作的遊戲的每個幀的輸入。在按鍵之間添加一個延遲
我想在每次按下時移動一個x
,但不是每一幀都必須有延遲。我現在每次按下按鍵時都會冷靜下來。
這裏是我CoolDown
類的某些部分:
bool test(bool asumedStatus)
{
if(asumedStatus == status)
{
return true;
} else
{
return false;
}
}
void go()
{
if(currentCount == runFor)
{
status = OFF_COOLDOWN;
} else
{
currentCount++;
}
}
void start()
{
currentCount = 0;
status = ON_COOLDOWN;
}
controls
被調用每一幀來獲取用戶輸入
void controls()
{
if(test(OFF_COOLDOWN))
{
if(KEY_L && !KEY_R && !KEY_U && !KEY_D)
{
left();
print();
cd.start();
}
else if(KEY_R && !KEY_L && !KEY_D && !KEY_U)
{
right();
print();
cd.start();
} else if(KEY_U && !KEY_L && !KEY_D && !KEY_R)
{
up();
print();
cd.start();
} else if(KEY_D && !KEY_L && !KEY_R && !KEY_U)
{
down();
print();
cd.start();
}
} else
{
cd.go();
}
}
不幸的是,這並不工作,延遲不存在。沒有改變。
有人有任何想法我可以做到這一點?
你試圖給'runFor'非常大的數字?簡單的遊戲可以運行數千幀每秒和遊戲,無需圖形甚至數百萬幀/秒。還有一個更好的主意是使用Rakete1111提出的時間。 BTW。爲什麼'test()'不是'cd.test()'? – Logman