疯狂java


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

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


 

android开发—连连看开发技巧(14)
没有转折点的横向连接
         如果两个Piece的在Piece[][]数组中的第二维索引值相等,那么这两个Piece就是位于同一行,如上link(Piece p1, Piece p2)方法中①号代码所示,此时程序需要调用isXBlock(Point p1, Point p2, int pieceWidth)判断p1、p2之间是否有障碍。下面是isXBlock方法的代码:
程序清单:codesLinksrcorgcrazyitlinkoardimplGameServiceImpl.java
/**
 * 判断两个y座标相同的点对象之间是否有障碍, 以p1为中心向右遍历
 * @param p1
 * @param p2
 * @param pieceWidth
 * @return 两个Piece之间有障碍返回true,否则返回false
 */
private boolean isXBlock(Point p1, Point p2, int pieceWidth)
{
if (p2.x < p1.x)
{
// 如果p2在p1左边, 调换参数位置调用本方法
return isXBlock(p2, p1, pieceWidth);
}
for (int i = p1.x + pieceWidth; i < p2.x; i = i + pieceWidth)
{
if (hasPiece(i, p1.y))
{// 有障碍
return true;
}
}
return false;
}
        从上面判断可以看出,如果两个方块位于同一行,且它们之间没有障碍,那么这两个方块就可以消除,两个方块的连接信息就是它们的中心。(未完.摘自[疯狂android讲义].李刚)