注:仅展示部分文档内容和系统截图,需要完整的视频、代码、文章和安装调试环境请私信up主。
1.2 课题的研究意义及目标
有些游戏已经慢慢成为了人们消磨时间的工具。人们可以在工作的休息之余,或者无聊的时候玩会游戏打磨时间。小游戏在人们生活中扮演着非常重要的角色,它们可以帮助人们打发休闲时间,消除压力,锻炼大脑,增加乐趣。同时,小游戏也可以为不同年龄阶段的人们提供不同类型的游戏体验,从而满足人们的不同需求。例如,对于一些学生来说,像连连看这种益智类游戏可以帮助他们在学业方面表现更加出色,而对于白领阶层来说,玩些休闲娱乐类游戏,可以帮助他们在工作之余放松身心,提高工作效率。因此,设计一款有趣、适合不同年龄层次的小游戏,可以带给人们更多的精彩体验。
连连看的玩法简单上手,只要按照路径把相同的图案连接起来就能消除。在里面加入了关卡和难度,不仅增加了游戏的难度,同时增强了游戏的技巧性,竞技性,同时画面加入了各种元素,使玩家有一个良好的观感,为玩家提供优质的游戏体验。
1.3 课题的研究内容
基于Java的连连看游戏的设计与实现只有玩家一类用户。本游戏主要由玩家登录后进行关卡选择,可以开始游戏。具体功能分析设计如下。
1.玩家
(1)登录,注册。
(2)关卡选择。一共10关,难度逐步递增。
(3)返回,返回后再选择当前关卡可实现一键刷新游戏,打乱所有图像的顺序。
(4)背景音乐。一个舒服的背景音乐可以让玩家更惬意的享受游戏。
(5)计时。一共20s的时间,每成功消除掉一组图案,时间恢复到20s,期间未消除掉图案,则时间继续倒计时。
(6)计分。每成功消除掉一组图案可以加两分,每一关的图案数量都不一样,越往后得的分约多,能激起玩家的好胜心。
3.2 事件处理机制
除了友好的图形用户界面,流畅的人机交互也是必不可少的要素。在游戏过程中,准确而有效的对游戏动作进行反馈会为玩家提供非常好的游戏感受。所以来说,手机游戏研发中的技术和其他技术具有同等的重要性,是一款产品需要的技术。Java的事件处理机制可以带来优秀的交互。
在Java中,事件驱动编程是一种重要的编程模式。Java中的事件处理机制主要包括事件、事件源和事件监听器等几个重要概念。事件指的是一种情况的变化或者事情的产生,可以分为组件型事件和动作型事件。事件源指的是产生事件的对象,而事件监听器则是通过监听事件源的类型,使用事件处理器,并进行检查和处理事件的对象。事件监听器接口和事件监听器适配器是处理事件的重要工具,它们需要实现特定的接口来完成相应的任务。而事件数据处理器则是一个重要的事件处理工具,它可以获取事件消息并进行处理。
4 游戏概要设计
4.1 游戏流程分析
首先是登录,在登录流程中,用到Java Swing中的面板,用于显示登录界面,在这个面板中,使用了null布局,首先创建了一个标题,接着创建了标签和对应的文本框,分别用于输入用户名和密码。最后,创建了一个隐藏的名字文本框和标签,这些元素一开始不可见,但在需要填写名字时可以用来输入。如图4-1所示:
4.2 游戏功能模块分析
游戏按布局模块分完之后,游戏分为两个主要部分。游戏界面的第一部分是显示模块,根据布局分为键盘功能模块和控制模块。第二部分是处理模块,它必须满足用户的需求和功能需求,以便进行需求分析。如图4-3所示。
操作模块是游戏中与玩家交互的主要模块,它由有序的jbutton组成,每个jbutton都显示一个图像。在游戏中,玩家需要使用鼠标来与游戏系统进行交互,通过点击按钮来消除游戏中选定的屏幕。当玩家点击按钮组件时,事件监视器将接收并处理事件,并生成操作反馈。这种反馈机制可以帮助玩家更好地理解游戏并且更容易地完成任务[4]。
功能键模块是游戏中辅助交互的模块,主要由JButton组件、下拉列表、JLabels以及其他执行游戏功能的控件组成。在该布局中,除了倒计时功能,所有组件都需要由鼠标来控制,每个组件都需要有适当的事件和响应监视器。该模块的设计旨在提供更多的游戏功能和控制,使玩家更好地参与游戏并享受游戏乐趣[5]。
游戏的主要功能分为一个模块:处理模块。该模块提供了一些功能,包括操作功能、时间功能、命令提示功能等。开发了以下模块:
(1)图像处理模块:图像处理模块是游戏中用于处理图像资源的模块。在启动程序后,该模块会对资源文件中提供的图像进行排序和初始化游戏布局,以及重新启动游戏和刷新游戏。该模块的主要作用是管理游戏中使用到的图像资源,以实现游戏的正常运行和顺畅的游戏体验。
(2)响应模块:响应模块可分为两类。第一类是操作模块中JButton的响应,主要指玩家点击按钮时所触发的响应,即消除游戏屏幕上特定图案方块的功能。第二类是功能键重要模块中每个组件的响应,主要指功能键模块中的组件响应,如下拉列表、Jlabels等组件的响应[6]。
(3)计时模块:倒计时结束显示提示。
(4)消除模块:该模块通常会包括一个用于存储当前已选中的方块列表的数据结构,比如数组或链表。当玩家选择两个方块时,程序会判断这两个方块在位置上是否相邻,以及颜色或图案是否相同。如果两个方块满足消除条件,则程序会调用相应的处理函数进行消除操作。这种判断操作可以通过复杂的算法来实现,以确保游戏的平衡性和挑战性,同时保持足够的可玩性[7]。
5.1 登录功能的实现
首先运行连连看游戏,之后会显示出本游戏的登录界面,这是进入游戏的初始页面“登录”,能成功进入到该登录界面则代表游戏的开启是成功的,接下来就可以操作本游戏所带有的其他所有的功能[8]。这是一个LoginPanel的类,主要用于构建一个用户注册和登录的面板,包括输入用户名、密码和名字信息的文本框,以及“登录”和“注册新用户”的按钮。登录界面如图5-1所示。登录信息具体解释如下:
同函数创建一个JSON格式的文件,名为"user.txt",并将一个数组添加到其中。这个数组里包含一个JSON对象,这个JSON对象包含了一些用户信息,包括用户名、密码和姓名。函数首先创建一个JSONArray对象array,并遍历User列表中的每个用户,将他们的username、password、name信息添加到一个新的JSONObject对象user中,并将user放入JSONArray中。最后,将该JSONArray对象添加到一个新的JSONObject对象obj中,并将obj写入文件user.txt中。
5.3游戏功能的实现
游戏界面的细节不容忽视。游戏一经推出,第一次受到好评和欢迎,这不仅取决于游戏在操作上的表现,还取决于游戏界面的美学表现。游戏以条形模式运行,接口必须满足需求分析中描述的简单、清晰的要求,以确保数据存储的安全可靠。游戏素材由两种类型的图像组成,一种是背景图像,另一种是游戏操作模块中显示的游戏图像。在选择背景图像时,考虑到游戏界面的简单性,选择白色背景图像[11]。如图5-3所示。
6.1 功能测试
消除功能测试:相同图案可以消除,不同的图案不能消除,符合路径的直线连接、单拐点连接、双拐点连接都能够消除。测试结果如表6-1所示。
表6-1消除测试
用例序号 | 测试数据 | 期望结果 | 测试结果 | ||
Test1 | 点击两个相邻且相同的图案 | 能够消除 | 成功 | ||
Test2 | 点击两个相邻但不相同的图案 | 不能消除 | 成功 | ||
Test3 | 符合路径的相同图案的直线连接 | 能够消除 | 成功 | ||
Test4 | 符合路径的相同图案的单拐点连接 | 能够消除 | 成功 | ||
Test5 | 符合路径的相同图案的双拐点连接 | 能够消除 | 成功 |
游戏关卡测试:每一关行列数都不一样,图案种类也不一样,且都成对出现,多次试验与预期结果一致,游戏平稳运行,符合测试要求。测试数据如表6-2所示。
表6-2关卡测试
用例序号 | 测试关卡 | 期望结果 | 测试结果 | ||
Test1 | 第一关 | 5种图案成对出现 | 成功 | ||
Test2 | 第二关、第三关 | 6种图案成对出现 | 成功 | ||
Test3 | 第四关、第五关 | 7种图案成对出现 | 成功 | ||
Test4 | 第六关、第七关 | 8种图案成对出现 | 成功 | ||
Test5 | 第六关、第七关 | 9种图案成对出现 | 成功 | ||
Test6 | 第十关 | 10种图案成对出现 | 成功 |