3。3。1 玩家功能模块

玩家类主要有三个功能,分别是开始游戏,关卡选择和游戏控制。如图3-1。

图3-1 玩家功能模块图

3。3。2 游戏控制模块

主要就是控制游戏的开始和中途退出;控制棋子是否是正确移动,消除的棋子是否是冰块上的棋子,当冰块上没有可以消除的棋子时,需要通过消除冰块周围的棋子来达到消除冰块上的棋子的目的;判断当前是否过关,结算记录。如图3-2。

图3-2 游戏控制模块

(1)这个模块的关键部分就是棋子部分的功能:源G于J优L尔V论N文M网WwW.youeRw.com 原文+QQ75201`8766 ----------------

1)消除相同图案的棋子后,会随机产生下落的棋子。

2)产生随机下落棋子后,能判断其位置的上下左右八个棋子是否满足可以消除的条件;如果构成三消的条件,再往外判断上下左右八个棋子是否构成四消或者五消。

3)交换的两颗棋子是否是相邻的棋子,如果是相邻的棋子又满足三消的条件,就可以消除;如果不构成,则不交换。

4)每一个关卡想要顺利通关,都要同时满足两个条件:在规定的步数内和完成任务才能结束这一关。

5)消除的棋子越多,得到的分数也就越高。

6)每一关的任务都是由简到难,只有完成了简单的关卡,才能继续后面困难的关卡,不可以跳过任何一关,但是已经顺利完成的关卡是可以反复玩的。

(2)棋子的变换与消除

当一行或者一列棋子中,与上下左右四周围有相同棋子时,可以交换,以达到消除的目的。删除棋子时,要先把为空棋子移除列的棋子集合,如果当前的棋子为空,并且格子的状态为可用状态的话,则要把棋子从当前的列集合中移除。两颗棋子进行交换时,必须要构成三消,才能进行交换;不能构成三消的,则会回到原来的位置。

(3)棋子的重新排列

首先要从下往上遍历一列,判断当前棋子是否为空并且格子是否可用,然后从下往上遍历,找出空棋子的上方最近的棋子,并且把这颗棋子移动到空棋子所在的位置,当前列的棋子消除后,每列会补充新的棋子,设置好棋子所在的下标,先移动没被删除的棋子,再移动被删除的棋子。

(4)障碍物的设计

障碍物就是在玩游戏的时候,棋盘上会有空格,就会增加过关的难度。障碍物的生成是为了给游戏添加难度,让游戏的难度可以层层递进,从简单到难的过程中能有一个过渡。生成障碍物后并把障碍物添加进集合。

3。3。3 UI显示模块

显示模块主要就是接收需要显示的数据,显示的数据底下又分为显示当前关卡数据,显示玩家当前分数,步数,显示关卡通关情况等等。如图3-3。

图3-3 UI显示模块

3。4棋盘模块功能

1)关卡的设计

综合考虑步数、关卡目标分、棋盘的行数以及列数,从创建的Json文本中读取数据,并按照读取的数据生成关卡。

2)棋盘的检测

当棋盘准备好之后,需要检测棋盘。

3)棋盘管理

关卡的不同,棋盘的列数也不同,棋盘列生成之后,分配上、下、左、右四周围的邻居。

3。5 游戏业务流程

这款游戏的流程图,主要就是简单的描述了用户进入游戏之后,可以进行的各种操作。如图3-4。

图3-4 游戏业务流程图

4系统实现

4。1 游戏基本类

这款游戏采用的是C#语言进行编程的,里面所有物体使用的都是面向对象的思想。这款游戏,所有的交互方式都是通过消息来交互的,因此,所有的类都是消息类。如图4-1。

上一篇:jsp网上订餐系统的设计+er图
下一篇:HTML5辛巴达旅行网的设计与实现

ThinkPHP问答系统的设计+源代码

php+mysql购物网站的设计与实现

HTML5辛巴达旅行网的设计与实现

jsp网上订餐系统的设计+er图

JAVA+MYSQL人脸识别的病房看...

ASP.Net+sqlserver高校班级日志...

jsp校园二手商品交易平台的设计+源代码

试论高校田径专任教師教...

应对小学课堂突发事件的原则与策略

LBS移动广告投放文献综述和参考文献

现茬學什么技术最吃香工...

立体停车国内外研究现状综述

人口数据开放三胎政策,...

19年属鼠人2022年运势,属...

超塑化剂的研究现状存在问题

酶循环放大信号的废水中Hg2+检测

华为企业专利战略及管理探析