用ncurses开发了一个基于shell的贪吃蛇,在这里列出用的API即后续改进可能需要的函数:
对于addch()和addstr(),我们经常会要求输出的字符带有某些特性,比如说颜色或者加粗,这时我们就需要给函数传递参数。比如:
addch(ch | A_BOLD | A_UNDERLINE); 输出加粗并且有下划线的ch。 基本属性包含在ncurses.h头文件中,有:A_NORMAL Normal display (no highlight) A_STANDOUT Best highlighting mode of the terminal. A_UNDERLINE Underlining A_REVERSE Reverse video A_BLINK Blinking A_DIM Half bright A_BOLD Extra bright or bold A_PROTECT Protected mode A_INVIS Invisible or blank mode A_ALTCHARSET Alternate character set A_CHARTEXT Bit-mask to extract a character COLOR_PAIR(n) Color-pair number nattron(), attroff()可以打开和关闭属性功能。mvaddch(row,col,ch)可以在指定的坐标(row,col)处显示ch.ncurses中最重要的概念是窗口,哪怕需要最简单的界面,你都需要借助于窗口。一个更好的作品需要一个好的界面,newwin()创建一个窗口,实际上屏幕并没有任何不同,因为此时程序
只是分配了一定的内存而已。窗口只是一个抽象的概念。调用delwin()则可以释放分配的内存。
ncurses中有两个重要的宏变量,COLS,LINES。当我们调用initscr()后就会获得屏幕的大小。
色彩对于界面来说是很重要的,应该像如下使用色彩函数:if(has_colors() == FALSE) { endwin(); printf("Your terminal does not support color\n"); exit(1); } start_color(); /* Start color */ init_pair(1, COLOR_RED, COLOR_BLACK);
头文件中定义相关的宏:COLOR_BLACK 0 COLOR_RED 1 COLOR_GREEN 2 COLOR_YELLOW 3 COLOR_BLUE 4 COLOR_MAGENTA 5 COLOR_CYAN 6 COLOR_WHITE 7 如果想重新设置初始的颜色,可以:init_color(COLOR_RED, 700, 0, 0); /* param 1 : color name * param 2, 3, 4 : rgb content min = 0, max = 1000 */curs_set(),可以设置光标的状态:0 : invisible or 1 : normal or 2 : very visible.