簡體   English   中英

我將如何使用Ncurses在屏幕周圍制作盒子

[英]How Would I go about making a box around the screen using Ncurses

我正在為盒子在開放區域中移動編寫一個簡單的程序。 現在完成了,我想在屏幕周圍制作一個框(不像Ncurses窗口,而只是進行顯示)。 我只是不知道該怎么做。 我搜索了谷歌,也搜索了此問題的解決方法,但我找不到它。 有人知道如何在屏幕上制作一個類似的盒子嗎?

你去

碰撞已經存在,我只需要在其周圍打一個盒子即可。 我當時正在考慮使用像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(最底端和最頂端的一個)終端中的右行和列)。 沖突已經存在,如果您需要完整的代碼,則可以單擊此鏈接到pastebin,然后查看它的工作方式。 (請記住在編譯命令后加上-incurses進行編譯)

看一下代碼,就在這里。 該功能甚至稱為create_box

提示:調用mvaddch 3個參數:y位置,x位置和要放在該位置的字符。 p_win->border.XX是常量,每個常量定義一個邊框字符,例如tl表示左上角。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM