前面已經給出了遊戲界面的佈局文件,該佈局文件需要使用一個視圖控制器來負責顯示。除此之外,視圖控制器還需要爲遊戲界面的按鈕事件提供事件監聽器。
下面是該程序的視圖控制器類的代碼。
程序清單:codes/13/Link/Link/FKViewController.m
該視圖控制器在viewDidLoad方法中創建了FKGameView和FKGameService對象,其中FKGameView負責繪製遊戲界面,而FKGameService則負責維護遊戲的狀態數據和遊戲的業務邏輯功能,程序將FKGameService設置爲FKGameView的一個屬性,這樣即可讓FKGameView通過該FKGameService對象來繪製程序界面。
由於FKGameView需要調用FKViewController的方法來判斷輸贏,因此,程序先在FKGameView中定義了一個FKGameViewDelegate協議,然後FKViewController實現該協議,並將自身設置成FKGameView的委託對象。
除此之外,該程序爲了控制時間流逝,定義了一個計時器,該計時器每隔1秒觸發一次,程序將會根據該觸發器減少遊戲的剩餘時間。上面的程序中,startGame方法內的粗體字代碼負責啓動計時器。
——————本文節選自《瘋狂ios講義(上)》