私が作っているゲームのすべてのフレームを入力するには、GetAsyncKeyState()
を使用しています。キーを押す間に遅延を追加する
x
は、すべてのフレームではなく、1つずつ移動する必要がありますが、遅延が必要です。私は現在、キーを押すたびにクールダウンすることでこれをやっています。
がここに私の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