我正在尝试为我班级的扫雷游戏创建启动画面

时间:2012-11-07 23:22:44

标签: c++ user-interface splash

我有点超越这里。我的任务是为我的C ++类创建一个伪Minesweeper游戏。所有的根编码都已完成,我现在要做的就是为它创建一个很酷的菜单。目前我只有这个:

 #include <iostream>
 #include <cstdlib>

 using namespace std;

 bool menu ()
 {
 int inpt;

 bool exitVar;

 system("cls");

 cout << "               _       _   _   _       _   _ _ _  " << endl
      << "              |_|_   _|_| |_| |_|_    |_| |_|_|_| " << endl
      << "              |_|_|_|_|_| |_| |_|_|_  |_| |_|_    " << endl
      << "              |_| |_| |_| |_| |_| |_|_|_| |_|_|   " << endl
      << "              |_|     |_| |_| |_|   |_|_| |_|_ _  " << endl
      << "              |_|     |_| |_| |_|     |_| |_|_|_| " << endl
      << "               _ _   _       _   _ _ _   _ _ _   _ _     _ _ _   _ _      " << endl
      << "             _|_|_| |_|     |_| |_|_|_| |_|_|_| |_|_|_  |_|_|_| |_|_|_    " << endl
      << "            |_|_    |_|  _  |_| |_|_    |_|_    |_|_|_| |_|_    |_|_|_|   " << endl
      << "              |_|_  |_|_|_|_|_| |_|_|   |_|_|   |_|_|   |_|_|   |_|_|_    " << endl
      << "             _ _|_| |_|_| |_|_| |_|_ _  |_|_ _  |_|     |_|_ _  |_| |_|_  " << endl
      << "            |_|_|   |_|     |_| |_|_|_| |_|_|_| |_|     |_|_|_| |_|   |_| " << endl;

 cout << "\n            Welcome to Psuedo Mine Sweeper!!\n\n\n\n";

 cout << "Please choose from one of the following options:\n";
 cout << "1 - Play Psuedo Mine Sweeper!\n";
 cout << "2 - Exit Program :(\n\n";
 cout << "(1 or 2):";
 cin >> inpt;

 while (inpt < 1 || inpt > 2 || cin.fail())
 {
     cin.clear();
     cin.ignore();

     cout << "Please enter a valid menu choice : ";
     cin >> inpt;
 }   


 if (inpt = 1)
     exitVar = true;
 else
     exitVar = false;
 return exitVar;
 }

非常简单。我想要做的是创建一个屏幕,用户可以使用向上和向下键盘键选择START或EXIT,然后按ENTER确认其选择。我认为这可以通过Java中的事件或类似的事件来完成。但是在C ++中我不知道该怎么做。我需要的只是一些帮助入门。我的介绍C ++书不包括这样的内容。

同样,我正在寻找一个简单的启动画面,类似于你在旧的任天堂游戏中找到的东西。我会在自己身边玩一些游戏,但我认为这是一个要求朝着正确方向前进的好地方。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您实现此目标的方式取决于平台。如果您只是使用控制台,则可能需要使用某种类型的库来帮助设置文本样式(例如反转所选菜单项的字符和背景)。我并不熟悉其中任何一个,但尝试搜索curses库作为从哪里开始的例子。

这并不像听起来那么容易。根据库的工作方式,只要用户发送输入,存储当前选择的菜单项索引,并根据是否选择了菜单项,就需要重新绘制闪屏。

获取输入也将取决于平台,特别是获取箭头键输入对于控制台来说是棘手的。使用数字要容易得多,因为您只需读取一个字符并将其用作菜单索引(即,如果用户点击1键,则选择第一个菜单索引)。