这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 初步了解游戏的基本功能和交互设计。 |
学号 | 102202147 |
Github仓库:https://github.com/Blueming92/Blueming92
test(1.py为本次作业代码。
🍎一、游戏名称:消除游戏
🥑二、游戏规则:
游戏目标:在限定的时间(TIME_LIMIT)内,通过点击消除尽可能多的图案来获得高分。
图案:游戏中有多种图案(由TILE_TYPES常量定义),每种图案对应一个图像。
游戏区域:游戏区域是一个多层的网格,每个图层上的图案可以独立操作。
选择图案:玩家通过鼠标点击选择图案。每次点击会将图案添加到selected列表中,最多可以选择两个图案。
图案消除:当玩家选择了两个相同的图案时,这两个图案会被消除(设置为-1),并且玩家获得分数。
得分:每次成功消除图案,玩家的得分(score)会增加。基本消除得分为10分,连续消除会额外奖励5分。
🍐三、前端设计与特殊功能
1.界面设计
开始界面
显示游戏标题和“开始游戏”按钮。
结束界面:
显示游戏结束信息、最终得分。
主界面
包含游戏区域、计分板、计时器和控制按钮。
2.用户交互
点击操作:玩家通过点击选择和消除图案。
实时反馈:图案消除和得分更新提供即时反馈。
3.特色功能
多层图案消除:游戏包含多个图层,增加游戏的策略性和复杂性。
计分系统:基于消除的图案数量和连续消除次数进行计分。
时间限制:增加游戏的挑战性,要求玩家在限定时间内完成游戏。
4.特殊算法
图案匹配算法:用于检测并消除玩家选中的两个相同图案。
图层管理:确保玩家只能与最顶层的图案交互。
5.游戏运行后终端会显示如下,反应图案的正确匹配。
6.实现思路
初始化游戏环境:设置窗口大小、加载图像和字体资源。
游戏循环:处理事件、更新游戏状态、绘制界面。
事件处理:响应玩家的点击事件,实现图案选择和消除。
图案消除逻辑:检查选中的图案是否匹配,并更新游戏状态。
计分和计时:根据玩家的操作更新得分和剩余时间。
游戏状态管理:控制游戏的开始、进行和结束状态。
🍑四、测试
简单进行几个消除动作,测试是否能够正确计分。
测试部分代码如下:
测试效果如下:
计分系统正常,可显示
🍊五、AIGC表格任务
子任务 | 借助何种AIGC技术,实现了什么功能 | 效果如何 |
---|---|---|
界面设计 | 任务按钮 | 良好 |
图案排列 | 随机生成图标顺序 | 良好 |
倒计时 | 设置游戏的限定时长,并实时更新 | 良好 |
图案消除 | 更新游戏界面 | 动作后无法更新,需调整 |
计分设置 | 设置得分逻辑,并实时更新 | 良好 |
🍋六、AIGC表格
项目名称 | 项目描述 | 学到的内容 | 心得体会 |
---|---|---|---|
消除游戏开发 | 使用Pygame库开发一个消除游戏,包括游戏逻辑、界面设计和事件处理。 | - Pygame库的基本使用 - 图形用户界面的设计 - 游戏逻辑的实现 - 事件驱动编程 |
通过这个项目,我了解到了游戏开发的基本原则和Pygame库的强大功能。在实践中,我学会了如何将游戏逻辑转化为代码,并且理解了用户交互的重要性。 |
图像处理 | 学习如何使用Python进行图像处理,包括图像加载、缩放和显示。 | - Python图像处理库的使用 - 图像的基本操作 - 图像文件格式的理解 |
图像处理是游戏开发中的一个重要部分。我学会了如何将图像资源有效地整合到游戏中,这对我的项目视觉设计有很大帮助。 |
事件处理 | 学习如何在Pygame中处理用户输入和游戏事件。 | - 鼠标和键盘事件的处理 - 事件驱动的游戏逻辑 |
事件处理是游戏交互的核心。通过这个项目,我学会了如何响应用户的操作,使游戏更加生动和响应灵敏。 |
计分系统 | 实现一个简单的计分系统,记录玩家在游戏中的表现。 | - 变量和数据结构的使用 - 基本的算法逻辑 |
计分系统让我意识到了数据管理和游戏反馈的重要性。我学会了如何设计和实现一个直观的计分板,以增强玩家的游戏体验。 |
多层图案逻辑 | 开发一个具有多层图案的游戏逻辑,提高游戏的复杂度和策略性。 | - 多图层管理 - 复杂的条件判断和逻辑 |
这个挑战让我学会了如何组织和管理更复杂的游戏逻辑。我意识到了在游戏设计中考虑玩家策略和游戏平衡的重要性。 |
🍇七、PSP表格
PSP | 预估耗时(min) | 实际耗时(min) |
---|---|---|
需求分析 | 15 | 30 |
设计游戏规则 | 30 | 45 |
界面设计 | 40 | 35 |
图层设计 | 40 | 45 |
优化 | 60 | 80 |
测试与调试 | 70 | 100 |
🍒八、个人作业评价
由于我是第一次接触游戏开发任务,一开始对这个任务进行解读花了不少时间。在这次的作业中,我有去尝试使用AIGC技术为我写一些代码,但是技术可能还是有一些有限,有时候给出来的代码跑起来有bug,需要对代码进行更详尽的分析,去发现到底是哪里有问题。
通过这次的作业,我初步了解了一个小游戏进行开发会经过什么样的过程,有哪些地方需要特别注意,以后可以做得更好。