这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 查看作业要求 |
这个作业的目标 | 开发一个类似羊了个羊消消乐小游戏~ |
学号 | 102202141 |
我的谷歌邮箱 fufubuff@gmail.com
我的github链接 https://github.com/fufubuff
我的博客园链接 https://www.cnblogs.com/fufubufff
😊😊😊fufubuff是全网唯一ID马甲,其他的不承认。
😊😊😊我的博客有点击特效,还可以开关灯(右上角有一个小案件),有兴趣的小伙伴可以玩。
😊😊😊非老师助教还有我的好朋友们的请不要偷偷视奸我的作业,因为用自己的命名一个游戏很羞耻,求停止阅读。。。。
本次作业的源码会于9.18号作业截止前的某一天放到我的github上,反正老师看的时候肯定有了,这里仅作部分最终版本代码展示(因为全部的放不下)和游戏实机展示,还有游戏介绍。
一,环境与工具准备
给我的python环境安装pygame
Pygame是一个用于开发游戏的库,可以帮助人快速完成游戏界面和逻辑的开发。
下载github copilot
安装代码辅助软件
在接下来的操作里可能用这个github copilot也有可能用GPT4等AIGC的工作
因为我是openai尊贵的20美元会员,所以我一般是享受oepnai的付费服务来进行AIGC.
主要的代码还是python和pygame包的运用,还有各层逻辑的组织和函数功能的编写,还有游戏的启动循环关卡迭代。
二,关于软件设计需求分析和逻辑组织
🎮 游戏介绍
🌟 游戏名称:《fu了个fu》
欢迎来到《fu了个fu》的世界!这是一个死宅二次元像素风小游戏!这是一个富有创意的益智游戏,邀请玩家在多样化的关卡中进行挑战,使用策略和速度解决谜题,适合所有年龄层的玩家。
📜 游戏规则
游戏中,玩家需要操作不同的图块进行匹配和消除。
随着玩家的进步,关卡难度将逐渐增加。
特殊的图块例如冰冻图块需要特定的操作来解冻和消除。
🛒 商城功能
在游戏内的商城中,玩家可以给本人的vx付款码打钱得到各种定制服务和道具,如时间延长、特殊能力或直接通关服务。
使用虚拟货币进行交易,可以通过游戏进度获取或通过实际购买获得更多货币。
🏆 拓展功能
有冰冻系统,冰住一些图块
还可以听歌
🎨 游戏特色
丰富多彩的图块:游戏中的图块设计多样,每种图块都有其独特的视觉和功能。
引人入胜的关卡设计:每个关卡都设计有独特的挑战,激励玩家发挥最大潜力。
⚙️ 如何开始
下载并安装《fu了个fu》。
打开游戏并通过简介教程了解基本操作。
开始你的关卡挑战,享受游戏带来的乐趣!
我们希望《fu了个fu》能提供一个既有挑战又有趣的游戏体验。快来加入这个充满乐趣和挑战的世界吧!🚀
我这个游戏运行代码包的main文件就直接可以玩了,如果需要定制小游戏的话我可以打包成应用程序送给你。
我相比其他同学的优势就是我的游戏页面非常地可爱,美观性很高(自认为)
三,游戏整体界面动态和静态展示
因为博客园jpg格式的图片大小限制在只能放10mb的,所以这里对时长和画质大小做了压缩请老师助教见谅。
动态实机演示
–游戏启动
–游戏超时,游戏一开始的设置是240s,随着关卡的递增出现冰块图块和时间随关卡递减20s
–游戏失败,盘子的容量为5,一旦盘子里的候选匹配方块大于等于5个不能腾出空位就算作游戏失败
–游戏通完第一关然后升级冰块小图块,要求更高,要先三个解冻然后会变成未冻住状态回到原地(这个回到原地的代码写了超级久,一直出bug)
游戏素材展示
–这里的图都是我自己去免费网上找的然后扣成透明底,然后那个冰块也是我自己P的加GPT生成,有部分GPT生成,不会侵权
–如果你来我的本机上玩的话还有三个连一起触发的音效和背景音乐
主打一个像素风
一些静态界面
开始界面
–这里设置了主菜单,分别是开始游戏和设置还有商店。
–商店可以购买付费服务,也就是我本人亲自为你提供服务,也设置了返回的按钮可以回到主菜单
-**设置这里可以调节音量还有图像
点击start按钮,游戏进入开始程序,新手指引和规则介绍
按一下继续,然后就到了第一关的页面,第一关就是普通的消消乐,有倒计时和分数,三个连在一起算是消除
点击小图标会摆放到盘子里,三个在一起会消除,必须全部消除完才算胜利
冰块系统,要重复消一次,每次数量随机生成,关卡越到后面冰块概率越高
不慎盘子容量满了就会出现game over的界面,然后可以返回重开。
如果超时游戏还没有结束就会弹出界面显示超时
代码功能展示
–整个python代码包一共有4个文件,menu.py,main.py,game.py,setting.py
main.py就是游戏驱动启动程序
game.py,这个是游戏核心功能的实现,我搞了很多个函数,这里拿几个重点的展示,具体详细看我源码。
–一开始小图层随机布局的生成
–对于点击功能的处理
–鼠标移动到小图块上会有粉色边框,沿透明底绘制,代表高亮
–消消乐匹配函数然后移除图块的逻辑
–这个是图块被消掉时动画的代码,调bug也调了很久
本来想搞那种效果,就是渐渐渐渐地透明,但是能力不足,最后只能搞平移
menu.py的代码部分展示
–这里主要是主菜单的构建,还有商店以及设置键和页面的导入
settings.py就是一些颜色大小参数的固定和引入,这里不做固定展示。
AIGC工具的使用和感受
子任务 | 借助何种AIGC技术 | 实现了什么功能 | 效果如何 |
---|---|---|---|
游戏主菜单和返回功能开发 | 通过询问 ChatGPT 获取指导 | 在游戏中实现了主菜单显示和返回功能 | 功能成功实现,主菜单可用 |
主菜单中 Start Game 功能完善 | ChatGPT 代码优化建议 | 修复了点击 “Start” 后直接显示超时页面的问题 | 正常跳转到游戏规则页面 |
等待返回主菜单功能 | ChatGPT 指导使用函数优化 | 使用 wait_for_menu_click 等待用户操作后返回主菜单 |
功能成功,实现预期效果 |
一些bug和框架实现的疑惑会去问gpt4,但是ai有个功能就是有的时候没那么智能化
比如说我一开始想拿那个粉色边框选中图层最上面的那个图块,因为羊了个羊是堆在一起的,所以我这个也是把所有要被消除的小图块堆在一起,然后那个粉色边框我一直会选到很多个,,然后问gpt,gpt也是一个智障。
我后面把逻辑反过来写就成功了。
还有就是对于代码,ai前后实现的变量和具体方式会有所区别,很多循环也是自己前后矛盾,尤其是gpt4特别爱偷懒,漏写代码。4o又是更加智障的存在。对于代码的bug没有办法知道在哪,
所以对于代码的逻辑结构和循坏规律绝对要清楚,不然一味地依靠ai自己没有想法和思考绝对是做不出来的。
一个消消乐小游戏只算核心的game.py都五百行代码了,gpt是很难能处理这么大量地代码的。必须自己慢慢组织和思考才能达到游戏功能的实现。
总结
本来想加点炸弹锁链什么的,丰富功能,但是由于我机器学习的老师给我的作业这个学期打了三个B(最差的等级)导致我无法再写一行代码悲痛欲绝,所以版本目前暂时更新到这里,等我平复好心情再来更新。
感谢阅读!
__EOF__
本文作者:fufubuff
本文链接:https://www.cnblogs.com/fufubufff/p/18406779.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!