|
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组件定义如下接口:
程序清单: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组件定义如下接口:
程序清单: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组件定义如下接口:
程序清单:codes\18\Link\src\org\crazyit\link\board\GameService.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讲义.李刚])
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讲义.李刚])
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讲义.李刚])
原文出处:疯狂软件教育java培训http://www.fkjava.org/newsView-420.html |
|