疯狂java


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

android连连看开发技巧(15)


 

没有转折点的纵向连接
         与之相似的是,如果两个Piece的在Piece[][]数组中的第一维索引值相等,那么这两个Piece就是位于同一列,如上link(Piece p1, Piece p2)方法中②号代码所示,此时程序需要调用isYBlock(Point p1, Point p2, int pieceWidth)判断p1、p2之间是否有障碍。下面是isYBlock方法的代码:
程序清单:codesLinksrcorgcrazyitlinkoardimplGameServiceImpl.java
/**
 * 判断两个x座标相同的点对象之间是否有障碍, 以p1为中心向下遍历
 * @param p1
 * @param p2
 * @param pieceHeight
 * @return 两个Piece之间有障碍返回true,否则返回false
 */
private boolean isYBlock(Point p1, Point p2, int pieceHeight)
{
if (p2.y < p1.y)
{
// 如果p2在p1的上面, 调换参数位置重新调用本方法
return isYBlock(p2, p1, pieceHeight);
}
for (int i = p1.y + pieceHeight; i < p2.y; i = i + pieceHeight)
{
if (hasPiece(p1.x, i))
{
// 有障碍
return true;
}
}
return false;
}(未完.摘自[疯狂android讲义].李刚)