1. 系统概述
1.1系统简介
消除类游戏是益智游戏的一种,玩家游戏过程中主要是将一定量相同的游戏元素,如水果、宝石、动物头像、积木麻将牌等,使它们彼此相邻配对消除来获胜。通常是将三个同样的元素配对消除,所以又称为三消类游戏。当然,三个以上的同样的元素也能消除。
对消除类游戏的设计与实现的各类游戏应用已经在20世纪80年代后期进入人们的日常休闲生活,随着各种网络以及计算机技术的发展,现如今消除类游戏已经成为各大游戏网站的热门下载。
1.2任务概述
游戏的主要任务是点击方块移动消除足够的方块获得得分,得分达到目标分数则可以通关。游戏的设计有:
界面部分:首先在界面中显示的是不同种类的图片作为消除的图片,在游戏图片消除以后的动画效果。最后还有分数的动态显示,动态效果统一使用SFML中的文本来实现。以及最后通关后游戏结束的界面。
游戏控制部分:在游戏控制部分中又分为三小块,第一是鼠标点击事件的处理,根据鼠标点击的图片判断前后两张图片是否可以交换;第二是两张图片交换后是否可以消除,如果可以消除则进行消除处理,如果不可以消除则将交换的图片恢复;第三是消除后的空白位置由以上图片填补,上面没有图片则随机生成图片。
消除游戏图片之后计分系统会根据消除图片的数量给予相应的得分,得分超过目标分即可通关。
在本次的游戏设计中消除算法整个游戏的重中之重,所以本次课题的研究方向主要是消除算法以及游戏中界面动画的设计与实现。
1.3设计环境
开发系统用的是windows系统中的visual studio2019,项目配置了第三方库SFML
1.4 项目组建立
消消乐项目课程设计个人独立开发完成,实现了游戏的所有算法函数和图片动态化的设计。
2. 系统分析和类的设计
2.1系统分析
系统需要完成游戏背景的设置,所有方块初始化,方块可以被点击移动还原消除的动态效果等。游戏大致需要完成的功能有以下:
1.运行后是一个开始界面,开始界面有两个按键,点击开始游戏可以游玩游戏,点击退出可以关闭游戏。
2.点击两个方块后,方块会交换,交换后同行(同列)有三个以上相同的图片会消除,如果没有则会还原。
3.实现游玩中玩家得分的动态显示。
4.通关后跳出游戏结束界面,有分数的结算和游戏退出按键
系统需要处理好鼠标点击的坐标值以及所点击方块的行列信息,透明度。
2.2 类设计
系统中设计了Block类,即方块类。指游戏中需要玩家点击移动的小方块。这个类中需要有小方块的种类信息、位置信息、标记信息和方块的透明度(用于方块图片的消除消失实现)。
所以Block类中有整型的数据x,y记录方块的位置信息,整型数据row,col记录方块在数组中的位置信息,整型kind记录方块的种类信息,布尔型数据match为标记方块移动后是否满足消除条件,整型数据alpha用于记录方块的透明度。开始方块都为不满足消除条件且不透明,所以构造函数中match的初始值为false,alpha的初始值为255。
class