高级语言程序设计
实验报告
南开大学 计算机大类
姓名 陈星烨
学号 2212518
班级 人工智能学院 3 班
2023 年 5 月 11 日
1
目录
一. 作业题目 ...........................................................................................................................2
二. 开发软件 ...........................................................................................................................2
三. 课题要求 ...........................................................................................................................2
四. 主要流程 ...........................................................................................................................2
1. 整体流程 ...........................................................................................................................2
2. 主要的场景逻辑和计算算法 ...........................................................................................3
(1) 场景切换 .......................................................................................................................3
(2) 判定算法 .......................................................................................................................3
(3) 得分算法 .......................................................................................................................5
(4) 谱面文件的读取 ...........................................................................................................6
3. 谱面运行测试 ...................................................................................................................6
五. 运行测试 ...........................................................................................................................7
六. 收获 ...................................................................................................................................7
1. 单例的创建 .......................................................................................................................7
2. 利用 QList 容器实现键盘上多个键同时按下的读取 ...................................................8
3. 利用 QFile 实现谱面文件读取以及文件的拆解..........................................................10
2
高级语言程序设计大作业实验报告
一. 作业题目
音乐游戏(Rhythm Game)的开发
二. 开发软件
Qt 6.5.0
三. 课题要求
1) 面向对象
2) 单元测试
3) 模型部分
4) 验证
四. 主要流程
1.整体流程
实现思路:
(1) 定义了 GameDefine 类,负责游戏主要参数的定义
(2) 定义了 GameControl 类,负责游戏主要进程的初始化、运行和控制
(3) 定义抽象的虚基类 GameScene,成员方法为
virtual void LoadScene() = 0;//加载场景
3
virtual void LoadPos() = 0;//加载位置
virtual void AddItem() = 0;//将元素添加到场景中去
virtual void AddEffect() = 0;//添加效果
virtual void AddPicture() = 0;//添加图片
virtual void LoadPushButton() = 0;//加载按钮
QGraphicsScene *mScene;//游戏场景
QGraphicsPixmapItem *mBackground;//游戏背景
虚析构函数:
virtual ~GameScene(){}。
其他类继承关系
图 1 继承类关系图
2.主要的场景逻辑和计算算法
(1)场景切换
① 总述:
4
游戏中一共存在四个场景:开始场景(Start Scene )、主场景(Main
Scene)、暂停场景(Stop Scene)、结算场景(End Scene)。场景之间的
逻辑关系如下图所示:
图 2 场景逻辑关系图
② 开始场景(Start Scene):
游戏开始时会弹出开始场景:
图 3 开始界面展示图
- 1
- 2
- 3
- 4
- 5
前往页