2013-12-09 3 views
0

Мы создаем программу Maze в OpenGL, и мы разрешаем пользователю использовать клавиши со стрелками, чтобы переместить пункт назначения на экран. Когда пользователь достигает этого адресата с помощью клавиш со стрелками, я хочу отключить пользователя от возможности использовать клавиатуру. Есть ли способ сделать какой-то glutSpecialFunc.disable? Вот где я хочу поставить отключить в этом случае заявление:OpenGL, Как отключить glutSpecialFunc после достижения цели?

void myKeyboard(int keys, int x, int y){ 

switch(keys){ ... 
    } 
    if(location == G.source){ 
    cout<<"\nYou have completed the game"; 
    drawShortestPath(); 
    /* Enter disable code here */ 
    } 
} 

ответ

1

Вы можете просто переключать логическое значение, когда игрок достигает цели/назначения, а также проверить, что логическое значение в вашей myKeyboard() функции.

bool game_done = false; 

void myKeyboard(int keys, int x, int y) { 
    if (!game_done) { 
     switch(keys) { 
      // ... the rest of your code ... 
     } 
    } 
} 

Затем, когда игрок достигает цели/назначения просто сказать game_done = true;

Вместо вызова булево game_done вы могли бы вместо того, чтобы назвать это что-то вроде lock_keyboard, что, вероятно, больше смысла в целом.

Затем, если вы хотите снова «активировать» клавиатуру, вы просто снова переключите логическое значение (установите значение «ложь»)

Смежные вопросы