如果您已经计算出用户精灵,您可能会遇到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