天天看點

處理方塊之間的連接配接線

LinkInfo是一個非常簡單的工具類,它用于封裝兩個方塊之間的連接配接資訊——其實就是封裝一個List,List裡儲存了連接配接線需要經過的點。

在實作LinkInfo對象之前,先來分析兩個方塊可以相連的情形。連連看遊戲的規則約定:兩個方塊之間最多隻能用3條線段相連,也就是說最多隻能有2個“拐點”,加上兩個方塊的中心,方塊的連接配接資訊最多隻需要4個連接配接點。圖18.5顯示了允許出現的連接配接情況。

考慮到LinkInfo最多需要封裝4個連接配接點,最少需要封裝2個連接配接點,是以程式定義如下LinkInfo類。

程式清單:codes\18\Link\src\org\crazyit\link\object\LinkInfo.java

public class LinkInfo

{

     // 建立一個集合用于儲存連接配接點

     private List<Point> points = new ArrayList<Point>();

     // 提供第一個構造器, 表示兩個Point可以直接相連, 沒有轉折點

     public LinkInfo(Point p1, Point p2)

     {

          // 加到集合中去

          points.add(p1);

          points.add(p2);

     }

     // 提供第二個構造器, 表示三個Point可以相連, p2是p1與p3之間的轉折點

     public LinkInfo(Point p1, Point p2, Point p3)

          points.add(p3);

     // 提供第三個構造器, 表示四個Point可以相連, p2, p3是p1與p4的轉折點

     public LinkInfo(Point p1, Point p2, Point p3, Point p4)

          points.add(p4);

     // 傳回連接配接集合

     public List<Point> getLinkPoints()

          return points;

}

LinkInfo中所用的Point代表一個點,程式直接使用了android.graphics.Point類,每個Point封裝了該點的X、Y坐标。

處理方塊之間的連接配接線

本文節選自《瘋狂Android講義(含CDCD光牒1張)》一書。

圖書詳細資訊:http://bvbroadview.blog.51cto.com/3227029/612167