体系文件结构
2020-12-22 22:13:53 8 举报
LinkGame大致流程
作者其他创作
大纲/内容
大致流程:启动时加载Link类,初始化需要用到的信息,初始化完毕调用startGame()函数开始游戏,startGame()函数设置定时器,调用GameView的start()函数根据Piece数组进行初始局面绘制。发生点击事件,Link类触发监听,调用GameServiecImpl的findPiece()找出该位置的元素在数组中的元素Piece对象,如果该位置没有对象就不做反应,包含对象进行下一步判断,在点击该位置之前是否选中过其他Piece元素,如果没有就将该元素选中并调用GameView的postInvalidate()函数进行重绘,出现选中的边框;如果之前已经选中一个Piece元素,就调用GameServieceImpl的link()方法根据返回值判断是否能相连,若返回为空就不能相连,不做下一步动作,返回不为空就表明可以相连,交由Link类的handleSuccessLink()函数处理,该函数先遍历连接信息集合,将连接点从Piece数组中消去,再调用GameView类的postInvalidate()函数,该函数根据当前Piece数组信息进行连线和局面重绘,最后判断Piece数组是否还有元素存在,若有就继续游戏,没有了就判定游戏胜利结束。在游戏过程中定时器隔一秒发送一条消息,Link对象接收到将剩余时间减一并判定剩余时间是否大于等于0,还有时间则继续游戏,否则游戏结束。
包含
GameServiceImpl游戏服务
实现
继承
Piece
GameConf配置类
FullBoard难度等级面板
VerticalBoard难度等级面板
使用
LinkInfo
PieceImage
Link类:主类,控制整个游戏流程,游戏开始与结束判定,对点击事件的响应,初始化功能。GameServiceImpl:游戏服务类,主要负责算法部分,接收Link传递点击事件传递过来的数据,进行能否连接的判断以及在连接成功时,返回连接点信息集合。GameView:绘制游戏区域,继承于View类,将地图根据Piece数据的信息进行局面绘制,并在连接成功时接收信号根据更新后的Piece数组数据进行重绘,刷新显示局面。GameConf:配置类,包含游戏参数配置信息,如游戏时间限制,地图规模等配置信息。AbstractBoard:抽象面板,具有一个抽象方法createPieces和非抽象方法create,抽象方法交由具体子类实现,负责产生各种不同难度的布局位置信息,非抽象方法create根据子类创建的布局信息获取相应的图片,将图片信息封装到Piece类中存入Piece数组。作为GameView绘制局面和判定游戏胜负的依据。FullBoard....这三个Board类:产生各种难度的初始位置信息,将数据返回交由create对相应位置装入其他信息。Piece:地图上每一个位置的所有信息,包含图片资源PieceImage,图片左上角在屏幕上的位置,元素自身在数组中的下标信息。PieceImage:图片资源封装,将BitMap类型的图片资源文件和该图片的资源Id封装。作为Piece的组成。ImageUtils:工具类,负责从资源文件中选出图片文件,按照地图规格产生相同数量并且成对的图片列表并返回给调用者。LinkInfo:连接信息类,保存在连接成功时,对于起始点和拐点的连接顺序,以便GameView根据信息绘制连线。Pont:点类,存储地图上每个元素的中心坐标,存放在LinkInfo中,方便绘制连线。
HorizontalBoard难度等级面板
GameService接口
AbstractBoard游戏面板
ImageUtils
GameView界面绘制
Point
Link主类
0 条评论
下一页