linux c 配合ncurses实现的FlappyBird游戏
四川大学2020级软件学院暑期实训项目
-
Ok完成场景绘制:鸟、地面、管道、背景、得分 //现成 ok
-
OK实现小鸟飞行与音效,点击Space振翅(包括动画)//
-
Ok实现管道,管道可上下动态移动 //随机数生成器,固定缝隙宽度 ,注意是管道生成后还可以运动(逻辑: 鸟距离管道一定距离要停止运动,否则没有可玩性)
-
OK实现背景音乐和音效的播放(振翅、游戏倒计时、游戏结束等)//alsa linux API实现 难(预计需要使用多进程,定时器,否则播放要出问题)
-
Ok碰撞检测:小鸟与管道碰撞,游戏结束,游戏结束时显示分数和历史最好分数,按空格键重新开始; 使用//文件IO操作实现数据持久化 简单,添加一个界面就可以了 ok
历史最高分有BUG,需要做判断
-
Ok4个场景:游戏开始、准备游戏、游戏运行、游戏结束。//现成 //添加界面与跳转逻辑 singalplayer 和 multiplayer
-
最后工作-重构代码 实现主函数分离,便于调试和功能整合
-
Next-扩展功能:实现双人游戏模式
//socket实现通信加云服务器,双人游戏同步展示进度(此处需要地图同步的实现「写好数组或者伪随机数生成器」,或者采取服务器端下发地图),socket实现数据的沟通 (udp协议)
拓展:局域网扫描 游戏难度选择!! 代码重构
项目的游戏主体基于hamikm的AsciiBird
音频播放部分基于miniaudio
多线程实现基于pthread 预计三个线程 游戏线程 音乐线程 socket通信线程(多人游戏)
--Text-Bird
|-- client.c //客户端,发送与接收数据
|--server.c //服务器端,两端口8081和8082 开放TCP
|-- game.c //游戏主体
| -- playsound.c //音乐播放