如果您已經計算出用戶精靈,您可能會遇到addSublayer:,它會在另一圖層上調用以將其添加到圖層樹中。從根本上說,爲了添加障礙,您需要使用 - [CALayer圖層]實例化一個新圖層,配置它,[rootLayer addSublayer:obstacle];
現在爲您的問題單獨的文件:創建一個新的類與它自己的頭和實現是一個好主意。但是隻要做一個類(意思是一個.h/.m對)來定義Obstacle的工作方式,並通過發出 - [[Obstacle alloc] init]調用創建它的許多實例(確保在它們不是更長的可見度!)
「障礙物」如何導入並可見?你很可能會在一個CALayer類型的Obstacle的@interface {}中放置一個變量。 GameBoard(或者非常簡單的原型/應用程序的ViewController)可以有一個方法-addObstacle:它採用Obstacle,要求它爲它的圖層並將其添加到rootLayer。
在試圖徹底的時候,我可能錯過了你的問題,更符合「我應該有一個障礙課,還是僅僅是一個充滿CALayers的障礙物陣列?」的問題?鑑於遊戲的描述,你當然可以這樣做。但是,只要你想開始保存任何關於單個障礙物實例的信息,你最好讓對象自己回答有關這些信息的問題。我已經完成了大量原型/測試應用程序,這些應用程序只包含一系列圖層,因爲雖然CALayer堅定地位於MVC的視圖範圍內,但它通常包含我需要的所有模型信息:x,y,邊界,顏色,內容等等任何我變成真正的應用程序,但必須重新編寫大部分的可維護性。
你看過Cocos2D嗎?它是很多大牌遊戲使用的一款優秀的2D開源遊戲引擎。這真的簡化了很多。 – Dancreek
@Dancreek我曾看過Cocos2D,但它並沒有讓我印象深刻。我不想使用任何第三方軟件。 –
嗯,我不確切知道你的最終產品是什麼,但我不會寫得太快。閱讀一些評論。如果不需要,不要重新發明輪子。 – Dancreek