我无法弄清楚如何让allegro等待用户按键。我假设readkey()等了,因为它停止了我的计时器,我已经删除了。到目前为止,我已经学会了如果我使用if(键[KEY_1]),程序只有在按下键时才能工作。
以下是我的游戏循环。现在它绘制了所有内容,并在最后一个问题上停止了。它适用于开关中的默认值,并将分数增加到-10。我不知道怎么让它等。我尝试了清除密钥,因为我认为如果缓冲区是清除的,那么它将不得不等待密钥。不。
我只能使用allegro 4,我不能使用allegro 5.
while (!key [KEY_Q])
{
blit(back, buffer, 100, 75, 100, 75, 180, 20);
textout_ex(buffer, Narial14, "PRESS Q TO QUIT",100,75, WHITE,-1);
//add a score
int score =0;
Question* run[10] =
{ch1q1,ch1q2,ch1q3,ch1q4,ch1q5,ch1q6,ch1q7,ch1q8,ch1q9,ch1q10};
for(int i = 0; i <10; i++)
{
clear_keybuf();
run[i]->draw();
int val;
val = readkey();
switch (val)
{
case 0:
if(run[i]->getAnswer())
score ++;
break;
case 1:
if(KEY_S)
break;
default:
score--;
break;
}
blit(back, buffer, 320-70, 400, 320-70, 400, 130, 30);
textprintf_centre_ex(buffer,font,320,410,WHITE,-1,
"SCORE %d", score);