软件工程第二次作业

这个作业属于哪个课程 软件工程
这个作业要求在哪里 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和我给出的代码相互改进的结果 能够改进的地方比如增加排行,撤销功能等等 还有就是代码实现的问题 在做游戏的很大一部分时间里都是在考虑怎么实现的问题 就是 这个想法到底怎么用代码写 能用哪些函数 用哪些库 我觉得这个只能是写代码写多了才能进步。
posted @ 2024-09-17 17:12  刚下雨  阅读(46)  评论(0编辑  收藏  举报