我使用C++创建基本控制台游戏。我希望用户能够在任何时间打逃逸,弹出一个菜单,将类似于以下内容:中断游戏以在按钮上按下显示菜单
[1] Resume Game
[2] Save Game
[3] Exit Game
Your Input:
我不完全知道从哪里开始解决这个问题。你们中的任何一个人能否为出发点提供一些建议?
我使用C++创建基本控制台游戏。我希望用户能够在任何时间打逃逸,弹出一个菜单,将类似于以下内容:中断游戏以在按钮上按下显示菜单
[1] Resume Game
[2] Save Game
[3] Exit Game
Your Input:
我不完全知道从哪里开始解决这个问题。你们中的任何一个人能否为出发点提供一些建议?
esr
有一些introductory material。
使用Visual C++的Windows控制台应用程序代码。
#include <iostream>
#include <conio.h>
using namespace std;
#define KB_UP 72
#define KB_DOWN 80
#define KB_LEFT 75
#define KB_RIGHT 77
#define KB_ESCAPE 27
#define KB_F8 66
void gamemenu()
{
cout<<" \n";
cout<<"[1] Resume Game \n";
cout<<"[2] Save Game \n";
cout<<"[3] Exit Game \n";
}
int main()
{
int KB_code=0;
cout<<"Game menu 0.01\n";
cout<<"press F8 to Exit\n";
cout<<"press ESC for Game menu \n";
while(KB_code != KB_F8)
{
if (kbhit())
{
KB_code = getch();
//cout<<"KB_code = "<<KB_code<<"\n";
switch (KB_code)
{
case KB_ESCAPE:
gamemenu();
break;
case KB_LEFT:
//Do something
break;
case KB_RIGHT:
//Do something
break;
case KB_UP:
//Do something
break;
case KB_DOWN:
//Do something
break;
}
}
}
return 0;
}
您可以使用:
ch = getchar();
地方的代码在游戏中询问输入或游戏与处理完成。
就可以检查的CH值27(Escape键的ASCII),如:
if (ch == 27) {
// save gameplay conditions
// clear screen
// popup comes up.
resume: // define label for resuming
// setup gameplay again
}
而且,如果用户选择简历选择
goto resume;
你正在寻找一个',而'循环。 – 2012-03-30 20:04:31
用户可以按其他键吗?如果是这样,你如何处理这些? – 2012-03-30 20:31:58
什么平台?你是否在使用任何库,如GLUT,SDL,ncurses等? – 2012-03-30 20:33:03