我需要创建一个包含多个精灵的对象(为简单起见2:游戏对象及其阴影)。 我需要把它们组成同一个类,所以有以下问题:
所描述的最好的祖先类是什么?
我为此目的使用了CCNode
。我通过以下方式覆盖了draw
方法:
- (void)draw {
[super draw];
[_item draw];
[_itemShadow draw];
}
突然发现需要以同样的方式更改所有其他CCNode方法。对于前者更改position
,visible
等,以便在我的自定义容器聚合中更改这两个Sprite中的这些属性:
@interface NBChecker : CCNode {
CCSprite *_item;
CCSprite *_itemShadow;
}
@end
我看到另一种方式 - 使两个sprite parent
属性指向self
。这应该同步这些精灵的位置,可见性等。
谁有更好的想法? 想使用聚合而不确定我是否正确。
谢谢!
答案 0 :(得分:1)
废弃绘制代码。您需要做的就是将两个精灵添加为CCNode子类的子级。在CCNode子类中编写逻辑代码,每个sprite都有两个ivar,以便于访问(就像你已经拥有的那样)。
只要它们是场景图的一部分,您就不需要自己绘制精灵。
精灵将自动相对于其父级移动和旋转。移动节点以同步移动精灵等