我现在正在研究一种类似罗格利埃的游戏,“诅咒”和“C++”。现在,我正在编写标题屏幕的代码,看起来如下所示:
game name
company name
(n)ew game
(q)uit但我非常希望用户能够使用箭头键突出显示他们的选择,并可能在稍后的库存屏幕中重用此功能。问题是,我不知道如何着色新的游戏,而不是退出时,它的选择,反之亦然。到目前为止,我的代码如下:
mvaddstr((height-1)/2, ((width-4)/2)-(newgame_button.length()/2),newgame_button.c_str());
mvaddstr((height+1)/2, ((width-4)/2)-(quit_button.length()/2),quit_button.c_str());
mvaddstr((height-10)/2, ((width-4)/2)-(titlename.length()/2), titlename.c_str());
mvaddstr((height-8)/2, ((width-4)/2)-(companyname.length()/2), companyname.c_str());那我就有我的钥匙管理员了。我试着这样做:
if(ch == KEY_DOWN) {
start_color();
init_pair(1, COLOR_BLUE, COLOR_BLACK);
attron(COLOR_PAIR(1));
attroff(COLOR_PAIR(1));
}但不起作用。我对诅咒很陌生,所以这可能是完全显而易见的事情,我忽略了。谢谢!
发布于 2014-04-15 19:41:09
完成简单菜单的最好/最简单的方法是,每次更改选择时都重新绘制标题屏幕(通常是按rp_arrow down_arrow )。我没有太多的时间来刷新我的诅咒,所以这里是伪代码。将变量保持选择与必须突出显示的文本相关联。就像这样。
#selecion=0;
#while(key_pressed != ENTER)
#print game title
#print company name
#if selection = 0 print highlighted new game
#else print new game without highlight
#if selection = 1 print highlighted quit
#else print quit without highlight
#if uparrow selection++
#if downarrow selection--我知道这并不完美,你必须用你的逻辑来获取输入和绘制新的屏幕,但这只是简单的、突出显示的菜单背后的一般想法。
如果您需要帮助,只需在这里编写,我将深入了解我的一些代码/内存,以获得详细信息和提示。祝你的比赛好运!
https://stackoverflow.com/questions/22884436
复制相似问题