消除类游戏的设计与实现综合报告.docx

上传人:b****6 文档编号:5185433 上传时间:2022-12-13 格式:DOCX 页数:10 大小:253.53KB
下载 相关 举报
消除类游戏的设计与实现综合报告.docx_第1页
第1页 / 共10页
消除类游戏的设计与实现综合报告.docx_第2页
第2页 / 共10页
消除类游戏的设计与实现综合报告.docx_第3页
第3页 / 共10页
消除类游戏的设计与实现综合报告.docx_第4页
第4页 / 共10页
消除类游戏的设计与实现综合报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

消除类游戏的设计与实现综合报告.docx

《消除类游戏的设计与实现综合报告.docx》由会员分享,可在线阅读,更多相关《消除类游戏的设计与实现综合报告.docx(10页珍藏版)》请在冰豆网上搜索。

消除类游戏的设计与实现综合报告.docx

消除类游戏的设计与实现综合报告

基于s3c2440平台的消除类游戏的设计与实现

摘要

进入21世纪以来,我国经济迅速发展,人民生活水平不断提高。

随着国民生活水平的不断提高,物质上的提高已经不能满足人们的需求,而精神上的需求已越来越受到人们的关注。

研究表明保持愉悦的心情能更高效率的完成自己的工作,而且愉悦的心情对于身体的健康也是有帮助的。

那么怎样才能保持愉悦的心情呢?

影响愉悦的心情的因素有很大一部分是由于工作的疲劳导致的,一款有趣且玩法新颖的游戏能够很大程度地解决这个问题。

在工作之余我们可以通过游戏将自己在工作中的思维暂时转换一下,放松在工作中紧绷的大脑。

消除类游戏在各类小游戏中是非常受欢迎的一款老少皆宜的游戏,在各大游戏门户网站上都有类似游戏的下载,例如:

4399,7k7k以这两个网站游戏为典型,代表的是网络版本消除类游戏,在IOS和安卓商城,两大平台上也有大量此类APP,而且下载量巨大,由此看出这是一款适应当今潮流的一款游戏。

这款游戏不需要复杂的操作流程只需动动手指,而且界面风格可以随着不同群体的喜好而改变。

该游戏的计时计分系统提供了很强的竞争排名方式,在游戏过程中各种技能的获取以及技能释放所获得的分数奖励也大大提高了游戏的趣味性。

本次设计的消除类游戏是基于s3c2440平台的一款游戏,首先该游戏工程的编码以及调试是在Linux系统下的QT中进行的,然后再进行交叉编译,将编译后的可执行文件烧写到arm板上运行。

关键词:

消除类游戏ArmLinuxQT

Abstract

Theneweraof21stcenturyhaswitnessedrapiddevelopmentofChineseeconomyandincreasingimprovementofpeople’slivingstandard.However,nowadayspeoplearenolongersatisfiedwiththematerialneeds.Ineffecttheyincreasinglyconcernaboutthespiritualneeds.Researchesshowthattheworkcanbeefficientlyaccomplishedwhenpeoplekeepacheerfulheart.Moreover,keepingacheerfulheartisbeneficialtopeople’shealth.Buthowcanwekeepapleasantheart?

Itisalmostworkfatiguethatshouldberesponsiblefordepressioninmind.Butthisproblemcanbeeasedtoalargeextentbyakindofentertainingandnovelgame.Afterworkwecanrefreshourmindsandrelaxourselvesbybeinginvolvedingames.

Eliminationofgameswhichcanbedownloadedatmanygameportalshavefoundtheirincreasingpopularityintheyoungandtheelderly.Forinstance,4399and7k7kareclassictile-matchingvideogamesofnetworkversion.WecanfindabundantAPPsofeliminationofgameswhichhavelargedownloadsintwoplatforms,theIOSandtheAndroidMarket.Sowecancometotheconclusionthatthiskindofgamescanmeetthecurrenttrend.Theadvantagesofthegamesareasfollows.First,thesegamesrequirenocomplexoperationprocessbutthemovementoffingers.Second,theinterfacestylecanbetransformedaccordingtothefavorofusers.Finally,thesegamescreateasystemofreckoningbytimeandscoreandgivethegameplayersrewardsacquiredbygettingandreleasingabilities.Thecompetitionandrewardgreatlyincreasetheenjoymentofthesegames.

Thedesignoftheeliminationofgamesisbasedonagameinaplatformofs3c2440.Furthermore,thecodeanddebugarecompletedinQTundertheLinuxsystem.Finally,thecrosscompiledandexecutablefileisprogrammedtoARMboardforoperation.

Keywords:

Eliminationofgames,ARM,Linux,QT

研究的背景与意义

进入21世纪以来,随着科技日新月异的发展,计算机、微型智能机以及互联网也得到了快速发展和迅速普及,微型掌上智能机已经成为人们日常生活中不可缺少的一部分,所以微型化、智能化的嵌入式产品将会成为信息化产品的发展趋势。

随着生活水平的日益提高,现在人们不仅仅对物质有所追求,精神上的需求也越来越被我们所关注。

所以一款趣味游戏能够让人们舒缓工作一天的疲劳以及各种压力,还可以在无聊的时候打发时间从而使枯燥无味的生活变得丰富多彩。

本次设计,我选择mini2440来实现基于s3c2440平台的消除类游戏的设计,希望人们通过游戏的方式缓解精神压力,使人们的生活更加的多样化;与此同时开发这款游戏能够使我们对Linux环境下的游戏开发更加了解,从而提高自己的编程和解决问题的能力。

一、系统的研究现状

一.1国外研究情况

消除类游戏是益智类游戏中的一种,起源于20世纪80年代后期诸如俄罗斯方块一类的游戏。

不同于上个世纪的游戏元素,发展至今的消除类游戏已经完全形成了能够厚积薄发的态势,它不似黑马的突然,反而更像是早起的小鸟,吸引了一大批的粉丝玩家。

玩家游戏过程中主要是将一定量相同的游戏元素,如水果、宝石、动物头像、积木麻将牌等,使它们彼此相邻配对消除来获胜。

通常是将三个同样的元素配对消除,所以此类游戏又称为三消类游戏

消除类游戏的界面主要是一推看起来混乱排列的游戏元素,这起源于20世纪80年代后期的一些游戏如俄罗斯方块,消除类游戏在2000年开始随着益智类游戏在互联网的传播流行起来,尤其是宝石方块系列游戏。

如今随着智能手机的普及越来越多的各种版本的消除类游戏在各大门户网站提高下载,而且此款游戏老少皆宜操作简单只要动一动手指就可完成。

一.2国内研究情况

进入90年代以来,以计算机技术、通信技术和软件技术为核心的信息技术取得了更加迅猛的发展,各种装备与设备上嵌入式计算与系统的广泛应用大大地推动了行业的渗透性应用。

嵌入式系统中硬件是支撑,软件是灵魂,几乎所有的嵌入式产品中都需要嵌入式软件来提供灵活多样、而且应用特制的功能。

小游戏以其投资小收益高而且实现要求低的优点成为了投资者争相投资的一个行业,所以小游戏在游戏行业中还是具有非常大的发展潜力。

游戏类软件也在迅速的发展,不断的创新使得消除类游戏的款式有了极大的丰富。

消除类游戏的一个优势就是充分利用了QQ、微信等社交关系网。

一方面玩家因为丰富的社交好友建立了一个规模相同的互动式消除游戏模式网;另一方面又通过消除类游戏增加了自己的社交范围。

根据消除类游戏在国内外各大游戏网站的更新以及各大手游网站的宣传资料可以大致了解它的应用前景。

二、系统主要研究内容

对消除类游戏的设计与实现的各类游戏应用已经在20世纪80年代后期进入人们的日常休闲生活,随着各种网络以及计算机技术的发展,现如今消除类游戏已经成为各大游戏网站的热门下载。

那么设计一款优秀的消除类游戏主要分为以下三部分:

界面部分:

一个优秀的界面设计能够让玩家耳目一新,而且能够迅速的吸引玩家的眼球。

首先在界面中显示的是不同种类的游戏图片作为消除的图片,在游戏图片消除以后的动画效果。

然后就是技能展示:

消除一行或一列的技能图片能够左后或上下动态跳动,消除相同图片的技能图片能够里外跳动且区别于其他图片。

最后还有时间和分数的动态显示,动态效果同一使用图片切换来实现。

游戏控制部分:

在游戏控制部分中又分为三小块,第一是鼠标点击事件的处理,根据鼠标点击的图片判断前后两张图片是否可以交换;第二是两张图片交换后是否可以消除,如果可以消除则进行消除处理,如果不可以消除则将交换的图片恢复;第三是消除后的空白位置由以上图片填补,以上没有图片则随机生成图片。

游戏计时计分部分:

在游戏进行过程中计时系统会开始倒计时直到时间为0游戏结束,在获得分数的同时根据得分情况给予相应的时间奖励。

消除游戏图片之后计分系统会根据消除图片的数量给予相应的得分,游戏结束后系统会比较游戏排行榜中的得分与本次比较,如果超过排行榜中的得分则覆盖排行榜中的信息。

在本次的游戏设计中消除算法整个游戏的重中之重,所以本次课题的研究方向主要是消除算法已经游戏中提示算法的设计与实现。

三、系统架构以及模块动作时序图

三.1模块结构图

图表1模块结构图

消除类游戏由三大模块组成,分别为界面处理模块、游戏控制模块、计时计分模块,界面处理模块包含游戏图片显示和图片动态效果处理两部分,游戏控制模块包含鼠标动作处理、消除算法、图片空缺填补和智能提示四部分,计时计分模块包含倒计时处理和分数累加处理两部分。

游戏图片显示:

所有游戏图片都是随机生成并且按照数组中的顺序显示。

图片动态效果显示:

游戏中的动画效果都是由若干张图片切换实现的,使用定时器来设置图片切换的间隔时间并且每切换一次窗口就重绘一次。

鼠标动作处理:

每次鼠标点击时判断是否在工作区范围内,如果在则会记录鼠标所点击的图片的坐标,然后和前一次点击的坐标比较是否符合交换规则,如果是则交换,否则不交换。

消除算法:

每次图片交换之后都遍历一遍存储图片信息的数组找出至少有三张相同图片在一行或一列的图片做好标记。

图片空缺填补:

将标记好的图片清除,空白的图片则由该图片上方的图片填补,如果上方没有图片则随机生成图片填补。

智能提示:

当用户按下智能提示的按钮后,系统会遍历每一种交换图片的可能性并找出符合消除条件的图片。

倒计时处理:

游戏开始后启动倒计时直到计时器为零时游戏结束,在游戏过程中系统会根据得分情况给予相应的时间作为奖励。

分数累加处理:

在游戏过程中系统会根据消除图片的数量给予相应的得分,游戏结束后系统将读取排行榜信息,然后进行比较并判断是否将此次成绩加入排行榜。

三.2动作时序图

图表2动作时序图

在本次项目中程序的运行主要由paintEvent、timerEvent和mouseEvent来主导,timerEvent在整个游戏运行过程中主要有两个作用,实现游戏时间倒计时和图片切换实现动画效果;鼠标的动作识别和处理通过mouseEvent事件来进行,mouseEvent将处理的的结果反馈给游戏控制对象进行图片消除。

整个过程中修改界面图片都是通过调用rePaint函数来触发paintEvent来进行窗口重绘,界面中的背景以及游戏图片的贴图都是在paintEvent中实现的。

四、算法设计

四.1图片消除算法设计

满足可消除图片条件的可能有三种,分别为三张相同图片在同一行或同一列、四张相同图片在同一行或同一列以及五张相同图片在同一行或同一列。

对于满足四张图片的系统会给出一个可以消除一行或一列的技能,对于满足五张图片的系统会给出一个可以消除一类图片的技能。

找出能够消除的图片必须满足以上条件,那么消除算法就可以分为两步:

第一步是按行查找,找出所有相邻相同且数量超过三的图片按照数量的不同分为三种不同的标记。

第二步是按列查找,具体步骤与第一步相同。

按行查找主要过程为:

从每一行的第一张图片开始记录图片的种类并且将计数器置一。

与下一张图片对比看是否相同如果相同则计数器加一重复本步骤直到行末,否则更改记录图片的种类为本张图片的种类,然后查看计数器的大小如果小于三则置一,否则执行下一步。

将从本张图片之前的相同图片做好标记以便在后续的图片清除和展示图片清除的动态效果。

消除图片之后按列将所有空白上方的图片下移直到没有图片可以移动,然后随机生成图片填充空白的地方,系统会再执行一次消除函数看是否有可以消除的图片,重复上述过程直到没有可以消除的图片为止。

下图为消除算法流程图。

图表3消除算法流程图

四.2鼠标动作处理

根据鼠标按下和释放来实现手指的滑动处理,在鼠标按下后记录鼠标的所点击的图片坐标,鼠标释放后再记录鼠标所在的图片坐标这些分别用mousePressEvent和mouseReleaseEvent事件来处理,然后根据两点的坐标判断鼠标的滑动方向。

在用户使用的过程中会出现一种情况就是用户用鼠标点击了一张图片之后界面会做成该图片被选中的效果,但是点击该图片相邻的图片后这张图片也会出现被选中的效果,所以此时需要设置一个标志变量来记录此时是否有选中的图片,然后根据这个变量来判断是否需要做成被选中的效果。

图表4鼠标动作处理流程图

四.3智能提示算法的实现

智能提示的实现主要是通过假设来确定可消除图片的位置,在算法中只需按行操作就可以完成,从第一张图片开始向右交换或向下交换然后调用图片消除函数判断是否可以进行消除,如果找到后就进行标记并闪动提示。

在图片交换的尝试过程中只需要将本张图片与下边和右边的图片交换,因为对于每一张图片来说它的上边和左边的图片已经跟它交换过了。

图片交换过后系统调用图片消除函数来判断是否可以进行消除,如果是则标记可以进行消除的图片,否则继续尝试下一张图片。

这个算法的缺点是有时可以消除四张图片这个算法只能识别出三个。

图表5智能提示算法流程图

五、项目总结

该项目是基于s3c2440平台的消除类游戏的设计与实现,开发平台使用的是Linux下的QT,对于QT的了解在项目初期我还是一个小白,对QT所知甚少。

因为之前对在VS上的游戏开发有过研究所以游戏的开发对于我来说困难度不是很大。

由于QT和VS之间还是有差别的,所以在开发前期还是花了一点时间来熟悉QT。

通过这段时间的消除游戏的开发,该游戏的重点主要可以分为两类:

界面处理和游戏算法。

界面处理模块中由于添加了动画的效果编码过程中花了不少时间来学习相关的技术和处理方式。

游戏算法的设计是整个项目中花费精力和时间最多的一项工作。

在最初进行设计的时候我所考虑的方法是以调换的图片为基准向这张图片的上下左右延伸并且判断其中是否有符合要求的图片,但后来发现这个方法行不通,因为当有图片消除以后上面的图片会填充下来,这样也有可能会形成符合要求的图片。

查过很多资料后发现只有遍历整个二维数组才能真正解决这个问题。

通过本次项目使我对QT编程有了更深的了解,而且也很大的提高了自己在项目中解决问题的能力。

最后感谢南昌航空大学以及东软实训中心老师在项目过程中给予的帮助。

参考文献

[1]霍亚飞.QtCreator快速入门.北京航空航天大学出版社,2012-05

[2]蔡志明卢传富李立夏.精通Qt4编程(第2版).电子工业出版社,2011-02

[3]程杰.大话数据结构。

清华大学出版社,2011-06

[4]屈喜龙,雷晓.游戏开发设计基础教程.清华大学出版社,2011-03

[5]杨宗德.Linux高级程序设计.人民邮电出版社,2009-10

[6]DanielSanchez-CrespoDalmau编著.邱仲潘译.游戏核心算法编程内幕.中国环境科学出版社,北京希望电子出版社,2004-12

[7]邹吉涛,姚雷,易巧玲.C++游戏编程.北京大学出版社,2011-01

[8]严蔚敏,吴伟民.数据结构[M].北京:

清华大学出版社,2007.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1