我将如何使用 Ncurses 在屏幕周围制作一个框
How Would I go about making a box around the screen using Ncurses
我正在制作一个简单的程序,让盒子在空旷的区域移动。现在完成了,我想在屏幕周围制作一个框(不像 Ncurses window,只是为了显示)。我只是不知道该怎么做。我搜索了 google 和 SO 来解决这个问题,但我找不到。有没有人知道如何在屏幕周围做一个这样的盒子。
碰撞已经存在,我只需要在它周围做一个盒子。我正在考虑在 Ncurses 中使用像普通框一样的字符,但这可能是不可能的,是否可以在框中制作一个框?
这里有一个我用 Ncurses 制作的盒子的例子(虽然我的格式很糟糕,真正的盒子里没有这些点)
+--------+
|........|
+--------+
此代码是移动的代码,也计算与场地外部的碰撞(所以盒子应该在哪里):
while((ch = getch()) != KEY_F(1))
{ switch(ch)
{ case KEY_LEFT:
if(win.startx>1){
create_box(&win, FALSE);
--win.startx;
create_box(&win, TRUE);
}
break;
case KEY_RIGHT:
if(win.startx<122){
create_box(&win, FALSE);
++win.startx;
create_box(&win, TRUE);
}
break;
case KEY_UP:
if(win.starty>1){
create_box(&win, FALSE);
--win.starty;
create_box(&win, TRUE);
}
break;
case KEY_DOWN:
if(win.starty<44){
create_box(&win, FALSE);
++win.starty;
create_box(&win, TRUE);
}
break;
}
}
endwin();
return 0;
如您所见,大框位于第一个 x 和第 y 行(因此终端中的第一列和终端中的第一行)以及第 44 行和第 122 列(最在终端的底部和最右边的行和列中)。碰撞已经存在,如果你想要完整的代码,你可以点击这个 link to pastebin 你可以看到它是如何工作的。 (记得编译命令后面加上-lncurses)
看看代码,它就在那里。该函数甚至被称为 create_box
.
提示:mvaddch
调用有 3 个参数:y 位置、x 位置和您要放置在该位置的字符。 p_win->border.XX
是常量,每个常量定义一个边框字符,例如 tl
表示左上角。
我正在制作一个简单的程序,让盒子在空旷的区域移动。现在完成了,我想在屏幕周围制作一个框(不像 Ncurses window,只是为了显示)。我只是不知道该怎么做。我搜索了 google 和 SO 来解决这个问题,但我找不到。有没有人知道如何在屏幕周围做一个这样的盒子。
碰撞已经存在,我只需要在它周围做一个盒子。我正在考虑在 Ncurses 中使用像普通框一样的字符,但这可能是不可能的,是否可以在框中制作一个框?
这里有一个我用 Ncurses 制作的盒子的例子(虽然我的格式很糟糕,真正的盒子里没有这些点)
+--------+
|........|
+--------+
此代码是移动的代码,也计算与场地外部的碰撞(所以盒子应该在哪里):
while((ch = getch()) != KEY_F(1))
{ switch(ch)
{ case KEY_LEFT:
if(win.startx>1){
create_box(&win, FALSE);
--win.startx;
create_box(&win, TRUE);
}
break;
case KEY_RIGHT:
if(win.startx<122){
create_box(&win, FALSE);
++win.startx;
create_box(&win, TRUE);
}
break;
case KEY_UP:
if(win.starty>1){
create_box(&win, FALSE);
--win.starty;
create_box(&win, TRUE);
}
break;
case KEY_DOWN:
if(win.starty<44){
create_box(&win, FALSE);
++win.starty;
create_box(&win, TRUE);
}
break;
}
}
endwin();
return 0;
如您所见,大框位于第一个 x 和第 y 行(因此终端中的第一列和终端中的第一行)以及第 44 行和第 122 列(最在终端的底部和最右边的行和列中)。碰撞已经存在,如果你想要完整的代码,你可以点击这个 link to pastebin 你可以看到它是如何工作的。 (记得编译命令后面加上-lncurses)
看看代码,它就在那里。该函数甚至被称为 create_box
.
提示:mvaddch
调用有 3 个参数:y 位置、x 位置和您要放置在该位置的字符。 p_win->border.XX
是常量,每个常量定义一个边框字符,例如 tl
表示左上角。