Allegro 4等待用户输入

时间:2016-10-17 00:11:29

标签: c++ switch-statement user-input wait allegro

我无法弄清楚如何让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);

0 个答案:

没有答案