[英]How would I go about making this udpclient asynchronous using pthreads?
[英]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.