用java实现开心消消乐

1.项目描述

《开心消消乐》是一款三消类休闲游戏。游戏中消除的对象为小动物的头像,包括小浣熊、小狐狸、小青蛙和小鸡等动物头像。玩家通过移动动物头像位置凑够同行/同列3个或3个以上即可消除。使用eclipse实现了一个简单的消消乐游戏。

2.概要设计

(1)消消乐UML顺序状态

(2)消消乐UML状态图

  A:播放片头,等待4s

  B:用户点击开始游戏

  C:消消乐步数统计,游戏结束

  D:用户点击再来一局

(3)游戏进行时UML状态图

a:用户点击两次准备消除

b:没找到连续的三块(用户已走了一步)

c:找到了连续的三块(用户已走了一步)

d:消除动画结束

e:补充新块完成

f:下落过程结束

3.详细设计

(1)在java中建立一个图形用户界面,使用swing中的组件JFrame,建立一个呈现给用户的窗体存放在package com.example.appex3下的Game类中。并在java文件中导入我们需要的图形存放在img文件中,再在R类中将所需的动物和消除动画图片导入进去。


(2)在绘制好窗体后,需要在窗体上放置需要消消乐的图形,并且是随机生成,而所生成的图形排列必须是初始没有可消块的图形。所以编写了符合消消乐生成图形的规则的算法存放在package com.example.ani中的InitMap类中。


(3)用户在玩消消乐游戏时,是通过两次点击改变图形的位置,所以我们需要记住两个图形的位置为其后来的位置转换做准备。我们将两个点的位置存放在package com.example.ani中的Point类中。然后我根据起始的xy,和移动的step,计算出新的位置,并将图形的移动算法放在MovePoint中继承Point类。


(4)计算机需要对移动后的图形进行判断,是否有三个连续的一样图形。如有有则消除,如果没有则进行下一步。所以需要在计算机中存放“寻找消除块”的算法,若找到则播放消除动画,如果没有则进行下一步并统计步数,而如果消除了50次后停止消除。(通过package com.example.ani中的ClearAni存放“寻找可消除块”的算法,通过ClearPoint(继承Point类)播放消除动画)(使用package com.example.appex3中的GameTool类存放用户在进行游戏时所要被记录的变量,以及我们程序中所要用到的变量)


(5)在播放消除动画后,需要生成新的图形对消除部分进行补充,需要编写生成新块的代码,并且新块也需要符合前面(2)中的原则。(存放在package com.example.ani中的MoveAni类中)


(6)在启动消消乐程序后,通过package XXL中的GameInfo类来存放程序片头动画,在播放4s后跳转程序开始菜单。


(7)如果点击了开始游戏,则跳转到游戏界面。(将其存放在package XXL中GameMenu类中)跳转界面后通过PackageXXL中GamePlay类将游戏步数清零,生成地图,记录步数,播放动画,并规定游戏过程中,消除、下落完成后,才能响应鼠标事件。


(8)在一盘游戏结束后,弹出游戏结束的图片和“游戏结束,点击任意地方再来一局”,通过鼠标点击,重新启动游戏。(存放在Package XXL中的GameResult类中)


(9)在消消乐中,将整个游戏的游戏流程存放在package com.example.appex3中的GameManage类中,讲我们前面编写的场景,顺序执行。

你可能感兴趣的:(用java实现开心消消乐)