高级语言程序设计大作业实验报告

高级语言程序设计大作业实验报告

一. 作业题目

基于qt制作的平面2d小游戏 Genshin_Pursuit

二. 开发软件

QT5.14.2 + vscode

三. 课题要求

  1. 面向对象
  2. 单元测试
  3. 模型部分
  4. 验证

四. 主要流程

1. 实现思路

a. 构建基本场景

首先构建场景之间的框架。游戏中,首先构建StartScene类,来负责游戏的开始界面;然后构建MainScene,负责游戏的主要内容,在MainScene中,构建四个按钮,通过信号和槽的机制,链接四个场景,分别为ChooseScene、MyEquipment、hotel、introduction,对应负责游戏关卡的选择、装备的购买,角色属性的更新,金币的消耗、进入酒店回复血量,消耗金币、游戏介绍;在CHooseScene类内部,设置三个按钮,同样通过信号和槽的机制来连接三个主要的游戏关卡

b. 构建游戏角色

实现MainCharacter类的人物构建,属性的存储,实现arrow类来储存记录角色的输出箭矢,实现了箭矢的移动逻辑和动画

c. 构建游戏怪兽

实现qqren、qqking、syfs三个类,实现各自的移动和怪物本身的技能特效,即丘丘王的冲刺,深渊法师的瞬移,深渊法师的减速

d. 游戏逻辑的实现

在scene01、scene02、scene03之中,实现了角色的攻击逻辑,根据关卡的通过次数,改变怪兽的本身属性,类内实现了怪物的随着时间生成,怪物随着时间释放技能,被攻击后死亡的特点,实现了通过键盘事件类掌控角色的移动

2. 实现方法

a. QT中的信号和槽的机制,在connect函数中使用lamada表达式,即匿名函数
b. 实现碰撞逻辑,包括角色射箭和怪兽的碰撞和角色本身和怪兽碰撞
c. 计时器的使用,在控制各种技能移动时都使用了移动的逻辑
d. 鼠标事件和键盘事件的重写

五. 测试

在本游戏的每个发布阶段都寻找了内测玩家,多次测量相关关卡,包括三个游戏场景,旅馆和装备的逻辑,综合测试得到本游戏的内容稳定

六. 收获

  1. 对lamada表达式的掌握,能做到将lamada表达式用于后续cpp的算法题目
  2. 对继承和类之间的深入理解,如何能实现代码的精简化
  3. 熟练掌握了github的使用,加深了对开源的理解,通过重写实现了角色的移动和攻击

七. 反思

某些本可以使用类的继承语法的地方没有使用,而是之间复制粘贴,增加了不必要的代码量,影响后期版本迭代


   转载规则


《高级语言程序设计大作业实验报告》 欧阳子恒 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录