APP下载

《成语填字》游戏的设计与实现

2020-12-29彭伟国韩赢

科学与信息化 2020年35期
关键词:关卡金币背包

彭伟国 韩赢

平顶山学院/计算机学院(软件学院) 河南 平顶山 467000

引言

成语作为中国优秀传统文化遗产,蕴含着丰富的故事、学问和智慧。然而小学生及幼儿的成语学习多是死记硬背、流于形式,没能深刻体会成语的内涵。据研究表明,让孩子在轻松的环境下学习,比让孩子死记硬背学习效率要高很多。将教育植入游戏,不仅能锻炼孩子的注意力,还能让孩子更深刻的记忆知识。

1 项目策划

为了使学生摆脱死记硬背式学习成语知识,策划开发一款《成语填字》游戏,使学生在游戏中记忆成语并了解该成语的含义及适用的场合。儿童喜欢夸张和拟人风格的美术作品,儿童喜欢色彩鲜艳和丰富的美术作品[1]。这款《成语填字》游戏目标用户是小学生和幼儿,游戏风格上偏卡通。玩法设计上,玩家通过选关界面选择不同难度的游戏,游戏界面下方有个皇冠,使用键盘按键移动皇冠。游戏界面中会出现“缺字”的不同成语,移动皇冠可以接收到场景中随机掉落的金币、炸弹和不同的文字,每接到一个炸弹损失一个生命值,通过获取金币来增加得分,完成一个成语的“填字”,会随机出现下一个要填字的成语。玩家闯关成功后,可解锁下一关的游戏,同时可点击背包按钮查看所有的成语内容及其含义。玩家闯关失败,会出现闯关失败界面,显示当前闯关数据。

2 项目实现技术

《成语填字》游戏主要运用C#脚本语言和Unity软件行开发的一款二维游戏,游戏UI和游戏场景主要运用Photoshop和Unity软件自带的UGUI进行制作,皇冠、金币、生命值等游戏元素,使用Photoshop进行处理完善,使用Json文件存储游戏中出现的成语及其释义。根据项目策划,项目需要实现的游戏功能有角色控制、背包查看、关卡选择、成语解释、生命值显示、游戏得分、游戏数据加载、游戏帮助、游戏设置。

3 项目详细设计

3.1 游戏美工设计

开始界面设计有游戏名字、操作按钮(GO、设置、退出)、卡通动物(长颈鹿、大象、鸭子)、生日蛋糕、礼品盒等元素,背景界面为碎花五彩图案,给小孩子一种绚烂多彩的画面,吸引小孩子进行游戏体验。

金币的中心设计的是美元符号,游戏中会掉落金币,所以金币的方位视图是根据美元符号的倾斜角度设计了三个方位视图。玩家接到炸弹后伴随的有炸弹效果,所以需要设计爆炸前后的两个效果图。游戏背包用来存放成语内容及其含义,游戏页面以书包造型设计了背包按钮。

游戏开始界面设计有成语名字和三个操作按钮,上下排列界面元素,玩家可以点击按钮运行游戏,可以设置背景音大小,可以点击退出应用。选关界面除了三个关卡按钮,还有开心闯一闯和帮助按钮。玩家进入到游戏界面中后,开始完成闯关任务,游戏界面主要包含游戏得分、生命值显示、背包等。

3.2 功能设计

在功能设计上,建立整体的游戏开发框架,按照高内聚、低耦合的设计思想,通过各个类源文件及其中的相关函数,实现角色控制、背包查看、关卡选择、成语解释、生命值显示、游戏得分、数据加载等功能。

角色控制功能实现了玩家控制角色左右移动的功能。玩家进入游戏后可通过键盘上的A、D键来控制游戏角色的左右移动,游戏角色为游戏界面下方的金色皇冠,玩家通过该功能控制角色的左右移动,通过控制角色的左右移动来接取正确的汉字,组成正确的成语,玩家通过该功能通过关卡选择。该功能的实现需要设计player类,通过方法Vector3.Move To Wards实现皇冠的左右移动。

玩家在完成一个成语后按下背包按钮,此时窗口中会显示出玩家完成的成语及该成语对应的含义及适用场合的介绍,在玩家未完成一个成语的情况下按下背包按钮窗口中显示“未完成一个成语!”的文字提示。玩家还可以通过背包按钮查看本关已完成的成语及含义。该功能的实现需要设计类UIManager Four实现背包查看功能,设计方法Knapsack Button Click监听背包是否被点击,设计Gameobject类型的Knapsack Panel存放背包面板,设计string类型的knapsackButtonIdiomstr来储存完成的成语以及成语解释,设计knapsackPanelExitButtonClick方法实现背包面板的隐藏。

游戏共三关,第一关为常见的四字成语,第二关为五字成语,第六关为六字成语,成语类型多元化,难度递增。玩家通过关卡后会解锁下一关,若玩家未通过前一关,则无法进行下一关。该功能的实现需要设计单例类Game Lvevl储存关卡信息,在类Game Lvevl中,设计int类型的levelfour,levelfive和levelsix来储存关卡的状态,值为1时表示该关卡已经解锁,值为0时表示该关卡未解锁。在类Select Game Player Scene中,设计三个方法对三个关卡按钮进行监听。

成语解释功能实现了玩家对成语含义的了解和记忆。有些成语玩家可能只是知道该成语,并不知晓该成语的含义及适用场合,玩家接到正确的汉字组成正确的成语后会跳出含义窗口,窗口中会显示该成语的含义及该成语的适用场合。成语解释功能的类设计是在UIManager Four中通过Show Idiom Explain方法对含义面板显示进行控制,设计Dont Show Idiom Explain Text方法控制含义面板隐藏进行控制。

生命值显示功能实现了对玩家生命值的控制。游戏界面中赋予玩家三颗红心,玩家接到炸弹或者接到错误的汉字后角色上方会提示玩家炸弹或错误文字,红心会减少一颗,当三颗红心全部消耗完毕后会显示玩家闯关失败,玩家可选择重新开始或返回主界面。生命值显示功能是设计类Game Manager Four,在该类中设计Ini方法对生命值进行初始化,设计LifeReduce方法控制生命值减少。

游戏得分功能实现了对游戏中玩家分数的统计。玩家通过在游戏界面中接金币来获取积分,分数统计为累加制,闯关成功后会显示玩家在该关卡中所获得的积分数,若玩家闯关失败,则积分清零,在玩家重新闯关后根据金币数重新记录分数。游戏得分功能实现是在类Game Manager Four中,设计int类型字段Game Grade储存游戏得分,设计方法Game Greade Add控制游戏得分的增加。在类UIManager Four中设计方法Show Grade Text更新游戏得分。

游戏数据加载功能是游戏中的核心功能,从Json文件里面解析到内存,获取游戏中会出现的成语,再通过相应代码随机抽取里面的成语,成语中所缺失的汉字也是随机的。游戏数据加载的类设计如下:设计类ListJson Manager,在该类中设计List类型的Items List储存文件中的成语,设计string类型的Jsonname储存需要读取文件的名字。

4 项目详细实现

4.1 游戏美工实现

该游戏中的美工主要分为两类,一类是通过Unity完成的界面UI,另一类是通过Photoshop设计的UI。

游戏场景的实现步骤是在Photoshop软件中,通过画笔绘出草稿图中的长颈鹿和大象,然后为画好的草稿图加深轮廓线并为之配色上色。

游戏中玩家需要控制皇冠移动接取掉落物品,幼儿一般对金色物品尤为喜爱,将金色皇冠确定为游戏角色。打开Photoshop软件,先用画笔工具勾勒出皇冠总体轮廓,再用画笔勾勒出皇冠上的钻石轮廓,勾勒完成后为皇冠和钻石润色。根据金币草稿图,先用画笔工具勾勒出金币三个方位的基本轮廓,再用油漆桶为金币上色,用画笔画出金币的阴影部分。根据炸弹草稿图,先用画笔工具勾勒出炸弹及爆炸效果的基本轮廓,再用油漆桶为其上色。

关卡主题图是采用三只小动物,先用画笔工具勾勒出三只动物的基本轮廓,再用油漆桶为其上色。用画笔工具勾勒出背包的基本轮廓,实现背包上的口袋布条等细节,最后用油漆桶为其上色。

游戏UI主要是使用UGUI插件内置的组件,通过Panel、Image、Sprite等UI属性元素的空间布局实现的。

4.2 功能实现

这里以游戏数据加载功能为例,分析其功能的实现步骤。

(1)创建ListJsonManager脚本挂在到ListJsonManager上。

(2)在ListJsonManager类中声明一个string类型的Jsonname,并在对Jsonname进行初始化,在四字成语关卡设置Jsonname=“Four”,在五字成语关卡设置Jsonname=“Five”,在六字成语关卡设置Jsonname=“Six”。

(3)在List Json Manager类中编写方法Init对Jsonname文件内的成语以及解释进行读取。

(4)在List Json Manager类中声明一个List类型的 Items List,Items List储存List Json Manager类中Init方法读取的Jsonname文件内的成语以及解释。

(5)在List Json Manager类中编写方法Get Game Num-Idiom Text,该方法作为一个接口,当游戏中需要成语时能通过该方法获取。

(6)在List Json Manager类中编写方法Get Game Num Idiom Explain Text,该方法作为一个接口,当游戏中需要成语以及该成语解释时能通过该方法获取。

游戏数据加载功能最终效果图如图1所示。

图1 数据加载功能效果图

5 结束语

成语填字游戏这款二维益智游戏的开发,按照游戏的开发流程,分别进行了游戏策划、游戏功能设计和游戏功能实现,将卡通元素融入游戏的每个关卡中,游戏难度由易变难,游戏中不仅包含四字成语,还包含五字六字成语,每个成语都有相对应的解释,玩家可以点击背包按钮查看已完成的所有成语。

猜你喜欢

关卡金币背包
海龟上岸
哗啦啦,下金币啦
水中的金币
大山里的“背包书记”
谁偷了我的金币
一包装天下 精嘉Alta锐达Sky51D背包体验
鼓鼓的背包
创意西瓜背包
找金币
2015年高考江苏省物理卷一道题的3种解法