疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

android开发—连连看开发技巧(9)


 

android游戏开发之连连看(9)

实现游戏逻辑
GameService组件则是整个游戏逻辑实现的核心,而且GameService是一个可以复用的业务逻辑类,它与游戏实现平台无关,既可在Java Swing程序中使用,也可在Android游戏中使用;甚至只要稍做修改,GameService也可移植到基于C#平台的连连看游戏中。
备注:征得《疯狂Java实战演义》作者杨恩雄的同意,本游戏的GameService组件基本上使用了《疯狂Java实战演义》第7章案例的GameService组件。

定义GameService组件接口

根据前面程序对GameService组件的依赖,程序需要GameService组件包含如下方法:
1.start():初始化游戏状态,开始游戏的方法。
2. Piece[][] getPieces():返回表示游戏状态的Piece[][]数组。
3.boolean hasPieces():判断Piece[][]数组中是否还剩Piece对象;如果所有Piece都被消除了,游戏也就胜利了。
4.Piece findPiece(float touchX, float touchY):根据触碰点的X、Y座标来获取
5.LinkInfo link(Piece p1, Piece p2):判断p1、p2两个方块是否可以相连。
为了考虑以后的可扩展性,先为GameService组件定义如下接口:
程序清单:codes18LinksrcorgcrazyitlinkoardGameService.java
public interface GameService
{
         /**
          * 控制游戏开始的方法
          */
         void start();
         /**
          * 定义一个接口方法, 用于返回一个二维数组
          * @return 存放方块对象的二维数组
          */
         Piece[][] getPieces();
         /**
          * 判断参数Piece[][]数组中是否还存在非空的Piece对象
          * @return 如果还剩Piece对象返回true, 没有返回false
          */
         boolean hasPieces();
         /**
          * 根据鼠标的x座标和y座标, 查找出一个Piece对象
          * @param touchX 鼠标点击的x座标
          * @param touchY 鼠标点击的y座标
          * @return 返回对应的Piece对象, 没有返回null
          */
         Piece findPiece(float touchX, float touchY);
         /**
          * 判断两个Piece是否可以相连, 可以连接, 返回LinkInfo对象
          * @param p1 第一个Piece对象
          * @param p2 第二个Piece对象
          * @return 如果可以相连,返回LinkInfo对象, 如果两个Piece不可以连接, 返回null
          */
         LinkInfo link(Piece p1, Piece p2);
}(未完.摘自[疯狂Android讲义.李刚])