您好, 访客   登录/注册

基于Processing的教育游戏设计

来源:用户上传      作者:陈腾辉 李璇 陶滋洋 周成瑞 陆杨 张茜

  摘要:游戏是一种社会文化,是一种社会风气的体现,而和游戏接触最多则是孩子们。该作品运用相对趣味化的游戏形式,以情境推动故事发展,努力加强游戏内容的供给,积极履行社会责任,结合计算机学科特点进行創新,引导玩家做好环保工作,充分突出了现代教育所推崇的寓教于乐这一观念。作品使用Processing开源工具开发,基于2D渲染引擎,通过图片与程序算法设计结合制作出了5个小游戏,用多分支结构控制作品流程进度,使剧情与游戏无缝相结合,对环保教育有一定的意义。
  关键词:游戏设计;环境保护;教育;Processing语言
  中图分类号:TP311      文献标识码:A
  文章编号:1009-3044(2020)26-0050-02
  1 背景
  人与自然如何和谐相处一直是近现代人类亟须解决的问题之一。关于这方面的倡议活动,教育视频数不胜数,养成教育从小抓起,儿童天性爱玩,所以用游戏作为载体去实现教育的效率会大大提高,为此,我们团队通过深入的调查发现:市面上多以成人向游戏居多,教育类游戏寥寥无几,而有关幼儿环保教育类游戏更是屈指可数,故本作品的设计受众主要以幼儿环保教育为靶向。
  Processing语言是专门用来生成和修改图像的文本编程语言。其特点是可以实现简洁性和高级功能之间的平衡。一般而言初学者在数分钟的指导后就能编写自己的程序,而高级用户则可以使用它编写具有附加功能的类库。这个体系使很多计算机图像与交互技术的教学变得十分方便,包括矢量图与光栅图的绘制、图像处理、色彩模式、鼠标与键盘事件、网络通信,以及面向对象式编程。本作品代码及算法基于Processing开发环境,Processing是一个开源项目,由Ben Fry和Casey Reas发起。它基于Java封装的一个图形库,并单独提供了开发环境PDE(Processing Development Environment)。
  2 游戏功能流程设计
  因为本作品的受众是儿童,故以故事情节作为全局基调,在讲述故事的同时用游戏的通关来推动故事的发展,达到寓教于乐的效果。故事情节应以动漫为基调,语音与音乐作为辅助。游戏剧情为:胡曼的爸爸妈妈是非法捕捉动物的商人,小胡曼从小和爷爷生活在一起,那时候的春天鸟语花香,啾啾鸟(小麻雀)是胡曼最好的朋友,它在胡曼爷爷院子的老槐树上安家。有一天,啾啾鸟突然受伤了,掉落在老槐树下。小胡曼通过游戏救助啾啾鸟,后来胡曼发现爸爸妈妈的非法行为,便通过游戏救出动物并使爸爸妈妈悔改。主游戏分为6段剧情以及5个小游戏,剧情与游戏相互穿插且为线性推进,游戏中不可逆转,游戏流程如图1所示。
  3 游戏主要算法实现设计
  3.1 游戏一主要算法设计
  游戏一是胡曼抓捕害虫为啾啾鸟抓捕害虫疗伤。在森林内随机出现虫子与鸟类,玩家只能捕抓虫子,一旦捕抓到鸟类,则游戏失败,需重回游戏规则界面重新开始游戏。游戏中,绳子将以固定的频率晃动,玩家可以点击界面使绳子伸长进行捕抓。
  3.1.1 绳子延伸算法设计
  当玩家点击屏幕时,将绳子的Processing纹理函数,将绳子的顶点延半径进行逐帧延伸后再渲染,达到绳子延伸的视觉效果
  3.1.2 捕抓算法设计
  1)调用绳子延伸算法,获取该路径上的虫子坐标,没有则碰壁后返回。
  2)如若有虫子则当钩子的坐标与虫子的坐标一致后同时减少钩子纹理的顶点坐标和虫子图片的坐标,逐帧渲染,达到将虫子拉回的视觉效果。
  3)如果钩子碰到的是鸟类,则将判定游戏失败。
  3.2 游戏二主要算法设计
  天气转阴,即将要下雨,游戏二是胡曼需要为啾啾鸟搭建一个小屋子。游戏中将会出现8块打乱的拼图,玩家需要通过键盘的方向键将九宫格内的小屋子复原,复原成功代表胡曼为啾啾鸟搭建好了房子。
  3.2.1 拼图生成算法设计
  使用乱序算法,将答案中的数组进行乱序排序,排序后进行计算逆序数,若逆序数为奇数,拼图无解,重新乱序,若逆序数为偶数,生成拼图块的顺序,将数组元素为0的位置设置为空,用于移动,生成拼图游戏界面。
  3.2.2 拼图块移动算法设计
  1)监听键盘按键动作,并判断是否为方向按键。
  2)当按下“上”“下”“左”“右”时,分别判断空白位置是否在最下一行,最上一行,最左一行,最右一行,是则无法移动,无响应动作,否则将空白元素分别与当前列的上一行、与当前列的下一行,与当前行的前一个、与当前行的后一个交换位置,交换完后进行正确性判断。
  3.3 游戏三算法设计
  小胡曼长大后被爸爸妈妈接去城市里生活,然而此时小胡曼发现爸爸妈妈在非法捕抓鸟类,小胡曼便和朋友一起救出被抓的鸟。小鸟们被救出后要从城市飞回森林里。游戏三是小鸟需要穿过城市中的高楼大厦回到森林里。游戏中将随机出现各种高度不同的大楼,玩家需要通过鼠标控制小鸟避开高楼,飞回森林中,玩家点击鼠标则小鸟向上飞,不点击鼠标则视为往下飞。
  3.3.1 小鸟移动算法设计
  通过监听鼠标左键的点击来控制小鸟的飞行,小鸟只能上下飞行且不能碰到大楼,当鼠标点击时,小鸟则垂直向上飞行,当鼠标没有点击时,小鸟自动默认为向下飞行,小鸟每一次移动都调用一次碰撞检测。
  3.3.2 大楼生成算法设计
  1)设置每个大楼的初始X轴坐标,大楼的宽度以及间隔一致。每一次调用draw()函数,5个大楼的X坐标都将-1,使得大楼呈现移动状态。
  2)使用随机数对象生成300~500之间的随机数作为大楼的高度,当大楼的右侧的X坐标小于0时,将大楼的X坐标设置为最大值,重新获取大楼随机高度。   使用随机对象生成0~3之间的随机数,用于选择大楼的样式。
  3.3.3 小鸟碰撞检测算法设计
  判断小鸟的Y坐标与大楼的Y坐标是否相等以及小鸟的X坐标是否在大楼前后两端的Y左边范围内,是则说明发生碰撞,游戏失败,否则游戏继续。
  3.4 游戏四算法设计
  因为人类的非法捕抓活动严重破坏了大自然的生态系统,世界上出现了一种新型的病毒。游戏四需要玩家通过判断力找到隐藏的病毒。10个病毒将随机分布在9*9宫格中,玩家通过显示的周围病毒数判断病毒所在并且不能碰到病毒,当9*9宫格中剩余10个病毒时则视为成功找出病毒并消灭了,若玩家判断失误点击到病毒则视为感染了病毒,游戏失败。
  3.4.1 病毒随机分配算法设计
  定义一个二维数组,使用两个随机对象分别获取随机的行列数,检查在此行列元素是否已经是病毒,是则循环数-1,继续循环,否则将此行列元素的值设置为病毒值,循环继续,直至病毒数全部分配完毕。
  3.4.2 相邻病毒数的计算算法设计
  对二维数组的每一个元素进行上、下、左、右、上左、上右、下左、下右8个位置的病毒数检测,若发现病毒,则计数器累加,最后将所得的病毒数存入该数组元素中。
  3.4.3 玩家交互算法设计
  根据玩家点击鼠标左键时的X、Y坐标计算得出玩家点击是几行几列方块,将此坐标传入打开方块函数中,并递归调用打开方块函数,将0病毒数的方块自动打开。
  3.5 游戏五算法设计
  病毒被消灭后,人类开始反思自己的行为。胡曼的爸爸妈妈也因为非法捕抓被判处终生守护森林罪。游戏五是收集方块,当集齐一行方块则视为成功种下一棵树。玩家需要通过控制键盘方向键控制方块,使方块充满一行。
  3.5.1 游戏移动算法设计
  1)接收玩家键盘输入消息,判断所按的方向键。
  2)当方向键为“左”或“右”时,判断是否碰壁,如果是则不进行左右移动。如果不是,则把保存方块的位置数组中的坐标数据进行更新。
  3)向下移动,判断是否落下到最后一行,如果不是,则把保存方块位置的数组中的坐标数据进行更新。如果是,则继续判断是否填充这一行或者多行为完整一行或多行,如果是,则把这一行或者多行进行消除;如果不是,则更新整个显示方块数组中的数据。
  3.5.2 方块生成算法设计
  1)使用随机对象生成随机数,将随机数取余,得到当前生成方块的类型值。
  2)用方块类型值,去生成相应的方块。
  3)当前生成的方块数据更新到方块数组中。
  3.5.3 方块变形算法设计
  当方向键为“上”时,将当前的方块进行逆时针90°旋转,将旋转好的方块进行溢出判断,若是溢出则保留原方块,若无溢出,则将当前方块换成旋转后的方块。
  3.5.4 游戏规则算法设计
  当方块向下的时候,判断当前方块数组中的元素是否有超过上边界,如果有,则游戏结束;如果没有,则游戏继续。
  3.6 游戏主要界面展示
  4 结束语
  娱乐参妙理,游戏悟人生。我们团队认为游戏文化应该是一种社会文化,是一种社会风气的体现。一类产品的发展,必将体现一个时代的进步,并折射出一定范围的社会文化,或者说社会风气。而和游戏接触最多的肯定是孩子们了,他们有玩游戏的时间、精力和愛好。然而,孩子们在玩游戏时很少考虑内在的深层次的东西,比如游戏文化。殊不知,孩子们有极强的模仿能力,他们很可能会去模仿游戏中人物的一些言谈举止。因此,游戏文化就可以轻易地在不知不觉中进入孩子们的心灵,进而影响他们的人生观、价值观,而孩子们的这些观念会直接影响到他们长大后对国家的贡献。这也充分证实了现代教育所推崇的寓教于乐这一观念。
  在开发的过程中,我们也在不断学习、不断升华自己的技能,时刻保持跟最前沿的技术接轨,每日学习了解新的开发技术,对Processing等传统游戏编程软件加以更为熟练的操作。还有就是不断对主流游戏框架的熟练与修改。通过不断摸索一些流向游戏,从技术呈现的角度进行科学创新,以期在游戏的升级演进中将其定义为一款公益教育游戏面向大众推广。
  参考文献:
  [1] 王浩.Visual C++游戏开发案例实战[M].北京:清华大学出版社,2017.
  [2] Casey Reas,Ben Fry.Processing语言权威指南[M].2版.北京:电子工业出版社,2019.
  [3] Bruce Eckel.Java编程思想[M].4版.北京:机械工业出版社,2018.
  [4] Mark Allen Weiss.数据结构与算法分析[M].北京:人民邮电出版社,2007.
  [5] Processing官方文档网站[EB/OL].[2020-02-20].https://processing.org/reference/.
  【通联编辑:谢媛媛】
转载注明来源:https://www.xzbu.com/8/view-15339779.htm