1. UI界面紅點提示結構設計
需求描述:遊戲中經常會出現層級較深的紅點提示,這些UI層級形成樹狀結構,如圖8所示,具體的需求就是葉節點上出現紅點時,根節點到達葉節點的路徑上經過的所有節點都需要出現紅點提示,同理節點的紅點消失時,該節點向上的路徑上,直到遇到變化的紅點之前,所有節點都需要更新。
實現方式:樹形結構的問題最好的實現方式是遞歸,而每個節點的UI通常對應一個UI類,因此只需要建立父節點與子節點之間的關係即可實現整條路徑上的遞歸與回溯,具體的實現方式,每個節點的UI類都實現兩個方法,check_hint(), update_hint() 這樣父節點的check_hint(), 就是子節點所有check_hint的邏輯或,這樣在父節點check_hint()時就會遞歸的check_hint()子節點。而update_hint()函數需要向上觸發父節點的update_hint(), 這樣update_hint()時就會回溯的向上更新。 此外需要注意的是父子ui對象的互引用造成的循環引用,需要在destory時清除引用。
圖1. UI層級結構圖