gitee源码获取链接:
一、项目功能
- 按下空格键小鸟上升,不按空格键小鸟下降。
- 搭建小鸟需要穿过的管道。
- 管道自动左移和创建。
- 小鸟与管道碰撞游戏结束。
二、知识储备
- C语言。
- 数据结构——链表。
- Ncurses库。
- 信号机制。
三、项目框图
四、Ncurses 库
问题引入?
- 如何显示游戏界面?
- 如何实现空格键控制小鸟上升?
4.1 Ncurses 库介绍
Ncurses是最早的System V Release 4.0 (SVr4)中 curses的一个克隆和升级。这是一个可自由配置的库,完全兼容旧版本curses。
Ncurses构成了一个工作在底层终端代码之上的封装,并向用户提供了一个灵活高效的API(Application Programming Interface 应用程序接口)。它提供了创建窗口界面,移动光标,产生颜色,处理键盘按键等功能。使程序员编写应用程序不需要关心那些底层的终端操作。
简而言之,它是一个管理应用程序在字符终端显示的函数库。
4.2 Ncurses 库函数
注:
- 只介绍需要用到的库函数,其他的如果有兴趣可以自行了解。
- 为了能够使用Ncurses库,必须在源程序中将#include<curses.h>包括进来,而且在编译的需 要与它链接起来。
- 在gcc中可以使用参数-lncurses进行编译.
函数介绍:
1. initscr(void);
是curses模式的入口。将终端屏幕初始化为curses模式,为当前屏幕和相关的数据结构分配内存。
2. int endwin(void);
是curses模式的出口,退出curses模式,释放curses子系统和相关数据结构占用的内存。
3. int curs_set(int visibility);
设置光标是否可见,visibility:0(不可见),1(可见)
4. int move(int new_y, int new_x);
将光标移动到new_y所指定的行和new_x所指定的列
5. int addch(const chtype char);
在当前光标位置添加字符
6. int refresh(void);
刷新物理屏幕。将获取的内容显示到显示器上。
7. int keypad(WINDOW *window_ptr, bool key_on);
允许使用功能键。exp:keypad(stdscr,1);//允许使用功能按键
8. int getch(void);
读取键盘输入的一个字符
9. chtype inch(void);
获取当前光标位置的字符。
注:curses有自己的字符类型chtype,使用时强制类型转换为char
10. int start_color(void);
启动color机制,初始化当前终端支持的所有颜色
11. int init_pair(short pair_number, short foreground, short background);
配置颜色对
COLOR_BLACK 黑色 COLOR_MAGENTA 品红色
COLOR_RED 红色


最低0.47元/天 解锁文章
650

被折叠的 条评论
为什么被折叠?



