软件工程第二次作业
| 这个作业属于哪个课程 | 软件工程 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
| 这个作业的目标 | 熟悉开发游戏的流程,懂得怎么用aigc来加快进度 |
| 学号 | 102201635 |
项目介绍 游戏展示
github仓库
这是一个类似羊了个羊的游戏


制作游戏流程
首先 我先明确了一下制作游戏应该有的界面:开始界面(选择难度),游戏界面。因为从来没有试过自己编写一个游戏,所以我只能问问chatgpt了。
很好 很有精神!我对着gpt说道。看起来还蛮简单的嘛,也就蛐蛐四步,嗯,让我看看,我们得先安装一下pygame库,好,让我搜索一下,emmm,这个pygame-zero库看着不错啊,
适合初学者?让我看看!
原来只要先这样在那样(省略1000字)就能设置背景了,经过坚持不懈的努力,终于也是画好了图像背景

那鼠标怎么点击之后跳转到游戏背景呢?
原来pgzero里有个on_mouse_down函数可以用来判断鼠标鼠标的点击位置 从而执行后面的步骤 那就加几个判断语句 分了三个难度等级(其实是我后面加的)

画出来

好了 界面设计的部分先暂时不讲了 接下来是逻辑设计
在我的设想中类似于羊了个羊小游戏的逻辑是 有这么一堆牌 层层叠叠重在一起,只有最上方的牌是能够被点击的 被点击的牌在凑齐三个一样的时候就被消除 如果点击了一定数量的牌(比如7) 还没有消除 或者倒计时结束了 那么游戏失败 而游戏成功是消除了所有的牌 我就先思考了如何先构造出一个牌堆 以及如何标记哪些牌是能够点击的 哪些牌是不行的 具体实现请看代码。
然后chatgpt开始接管游戏
首先是倒计时系统

其次是难度选择

在处理难度的时候 我才真的考虑去换一下字体 否则中文全是乱码 于是又问了问gpt

愉快地解决问题
其中的图像是在https://www.craiyon.com/?prompt=Metallic%20grapes&model=art&negativePrompt=&aspectRatio=1%3A1上找的水果照片 我将它们的尺寸修改之后得到的

aigc表格任务
| 小任务名称 | 任务描述 | AIGC的应用可能性,可利用AIGC的方式及预估结果 | 实际实现 |
|---|---|---|---|
| 游戏主界面设计 | 设计开始界面、结束界面以及返回主菜单的界面,设置背景和UI元素 | 高,AIGC可以生成视觉设计,包括背景图、按钮图标等 | aigc打的比我好多了,只需要自己加上图片资源 |
| 牌的图像设计 | 设计游戏中的各种牌面图案 | 高,AIGC可以生成卡片的视觉元素,如图片、图案等 | 使用craiyon来生成的图片,同时利用在线网站改变图片尺寸 |
| 难度逻辑设计 | 设计不同难度模式下的牌面分布、层数等规则 | 中,AIGC可以根据要求生成不同难度的逻辑设计,需配合人工优化 | |
| 倒计时系统 | 实现倒计时功能,实时显示剩余时间,分数系统 | 低,AIGC不适合处理复杂的逻辑计算和实时系统 | aigc完成的很好,仅仅只需要微调 |
| 游戏逻辑设计 | ,设计点击、消除牌等交互逻辑及规则 | 低,AIGC较难处理细致的游戏逻辑,需由开发者手动编写 | aigc比较难理解需求,也可能是我表达不够精确,得自己实现 |
| 音效与背景音乐选择 | 为游戏选择背景音乐和音效 | 高,AIGC可生成背景音乐、音效等资源,或推荐现有资源 | 自己找的背景音乐 |
psp表格
| 任务描述 | 预估用时 | 实际用时 |
|---|---|---|
| 需求分析 | 0.5h | 0.5h |
| 安装所需环境 | 0.5h | 0.3h |
| 技术学习 | 3h | 4-5h |
| 开始界面 | 0.5h | 0.8-1h |
| 游戏界面 | 0.5h | 0.5h |
| 游戏逻辑设计 | 3h | 4.5h |
| 游戏难度设计 | 1h | 0.5h |
| 倒计时系统 | 1h | 0.5h |
| 游戏结束界面 | 1h | 1.5h |
| 游玩及优化 | 1h | 1.5h |
| 总计 | 12h | 15.8h |
| 完成过程一言难尽,最开始的想法是我和aigc说需求,他能直接给我做一个游戏出来,但很快我就发现我在做白日梦,还是去学习了一下怎么实现界面设计,以及鼠标如何交互,后来我发现aigc在完成某些任务上还是很快的 只要你已经实现了一部分 让他根据你的代码进行改进 效果就会比他凭空生成一个好很多 其中游戏逻辑设计的部分实在很折磨 比如怎么实现堆叠效果 然后如何标记哪些牌能点 哪些牌不行 aigc给出的一些代码对我比较有启发 总之这次的作业是一个aigc和我给出的代码相互改进的结果 能够改进的地方比如增加排行,撤销功能等等 还有就是代码实现的问题 在做游戏的很大一部分时间里都是在考虑怎么实现的问题 就是 这个想法到底怎么用代码写 能用哪些函数 用哪些库 我觉得这个只能是写代码写多了才能进步。 |

浙公网安备 33010602011771号