2024软工第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 进一步学习软件工程,学会使用AIGC工具辅助设计小游戏 |
学号 | 102201420 |
1.项目展示
Github仓库链接:https://github.com/Clauede2233/homework
使用说明:
1.下载相关文件夹及main.py文件
2.其中pattern/sound/钉钉进步体是项目中使用的相关图片/声音/字体,项目中使用的都是免费可商用素材,请放心使用
3.下载好文件后,确保环境已安装相关库函数,修改main.py中文件路径,即可运行
4.免费可商用素材来源:阿里巴巴矢量图标网、爱给网等,通过egale资源社区可以快速获取
2.项目介绍
实现思路:
拓展内容 | 具体内容 |
---|---|
名字 | 《作了个业》 |
实时计分 | 关卡等级、物种数量、时间等实时变化 |
图片排版 | logo简洁有艺术感,可以预知下一张图片内容 |
奖励机制 | 随着关卡升级,会有时间奖励和仓库容量扩大奖励(特定关卡才有) |
难度叠加 | 随着关卡升级,物种数量会越来越多,速度与激情! |
无尽模式 | 基础关卡有17关,达到上限将进入无尽挑战,比拼最高分吧! |
循环设置 | 游戏结束后,可以通过点击再来一次,再次开启挑战之旅 |
main.py | 实现方法 | 具体功能 |
---|---|---|
开始界面 | main() | 设置屏幕大小/更新屏幕 |
游戏界面 | main1() | 载入字体/设置大小 |
结束界面 | main2() | 控制文本、按钮等位置 |
点类 | Point() | 用于存储坐标 |
消除函数 | judge() | 判断是否消除图像 |
pygame | 实现方法 | 具体功能 |
---|---|---|
主界面 | pygame.display | 设置屏幕大小/更新屏幕 |
文本 | pygame.font | 载入字体/设置大小 |
布局 | pygame.rect | 控制文本、按钮等位置 |
音效 | pygame.mixer.Sound | 载入消除、结束音 |
图片 | pygame.image | 载入图片 |
操作 | pygame.event | 获取鼠标位置 |
调整 | pygame.transform | 平滑转化图片 |
其他 | pygame.init()等 | 初始化操作等 |
素材 | 来源 |
---|---|
编译工具 | pycharm |
图片 | eagle资源社区、阿里巴巴矢量图标网 |
音效 | 爱给网、Zapsplat |
字体 | eagle资源社区、阿里巴巴钉钉进步体 |
AIGC | AIchatOS、openAI、文心一言等 |
3.测试
游戏测试
转为gif格式,视频会出现些微卡顿现象,实际效果流畅:
开始界面:
点击“开始游戏”即可载入游戏
游戏界面说明:
文本 | 说明 |
---|---|
关卡 | 总共17基础关,之后为无尽模式,每5分升级 |
当前分数 | 每消除3个相同色块+1,每5分升级 |
物种类型 | 提示目前可能出现的物种类型数目,初始为8,最多24种 |
剩余时间 | 实时变化,实际效果比gif流畅,每过一关奖励10秒,为0游戏结束 |
家园容量 | 初始为5,超过上限游戏结束,在特定关卡通过后增加 |
图案说明 | 只能点击大图案,小图案为预览下一个将出现物种 |
结束界面说明:
点击再来一次进行下一把,点击接受游戏关闭界面
测试结果评价:
基本满足设计要求,但仍有很多优化空间限于时间,之后可以进一步优化,以下是进一步的设想
1.增加按钮点击抖动功能
2.增加个性化鼠标
3.增加特俗道具,消除后可以解锁特殊功能
4.难度增加比较线性,可以增加多元性
5.设置菜单界面和本地存档功能
。。。。。。
4.AIGC表格
AI辅助子任务
子任务 | AIGC技术 | 实现功能 | 效果如何 |
---|---|---|---|
界面设计 | AIchatOS | 代码参考,基本框架构建 | 提供了较为简单的基础框架,方便进一步优化,但也存在一些小bug |
按钮设计 | AIchatOS | 代码参考,基本框架构建 | 提供了pygame按钮设计的相关函数,经过简单修改可以正常使用 |
功能参考 | OpenAI | 代码参考,基本框架构建 | 提供了一些函数的相关设计思路,比如图像消除等,要实现个性化的复杂代码还需要进一步调试 |
素材参考 | 文心一言 | 提供图片、音效等免费素材来源 | 告诉了一些网站参考和相关途径,有一定参考价值 |
图片生成 | Craiyon | 文生图生成简单logo | 在艺术和实用性上没有体现免费可商用素材的优越性,故舍弃 |
PS:在eagle资源社区有大量的AI生图网站参考,但基于AI文生图在版权问题仍然模糊,业界争仍有很大争议
AI生成表格
项目 | 内容 |
---|---|
作业题目 | 开发“羊了个羊”小游戏 |
背景 | 随着AIGC降低开发成本,开发小游戏成本降低 |
主要收获 | 1. 学习了如何使用Pygame设计游戏界面。 2. 理解了图案生成与消除的基本逻辑。 3. 掌握了如何利用AIGC工具生成代码。 |
遇到的挑战 | 1. 实现图案的合理匹配与消除。 2. 设置倒计时机制和难度调整。 3. 确保代码结构清晰且可维护。 |
改进建议 | 1. 增强图案消除算法以提高游戏体验。 2. 添加更多关卡和挑战元素。 3. 改进界面设计以提高用户体验。 |
5.PSP表格
任务 | 描述 | 预估耗时 (小时) | 实际耗时 (小时) | 差异 (小时) | 备注 |
---|---|---|---|---|---|
游戏界面设计 | 使用Pygame或其他图形库设计主菜单、游戏界面和结束界面。 | 5 | 7 | +2 | 界面设计比较简洁轻快,可以增加更多功能 |
图案生成与摆放 | 实现图案的生成和分层摆放逻辑。 | 3 | 2 | -1 | 图案生成符合预期,较为合理 |
图案选择与消除逻辑 | 实现玩家点击选择图案并消除的逻辑。 | 4 | 2 | -2 | 消除逻辑顺利实现,功能正常。 |
倒计时机制 | 设置倒计时功能,时间结束时游戏失败。 | 2 | 1 | -1 | 倒计时机制实现得比较顺利。 |
难度设置 | 随机生成图案摆放顺序或设置不同的关卡增加难度。 | 3 | 2.5 | -0.5 | 难度设置效果良好,但关卡设计还有很大提高空间。 |
使用AIGC工具生成代码 | 利用OpenAI等工具生成部分代码。 | 2 | 3 | +1 | 代码生成较为准确,注释清晰。但仍需要人为调整修正 |
代码测试与调试 | 测试游戏功能并修复可能的bug。 | 5 | 7 | +2 | 测试过程中发现了一些意外的bug,通过修复得以解决 |
文档编写与注释 | 编写代码注释和项目文档。 | 2 | 3 | +1 | 文档编写比较顺利,注释完整。 |