Cocos2d iphone Cocos2d:合成包含多个精灵的对象的最佳方法
我需要创建一个包含多个精灵的对象(为了简单起见,需要创建两个:游戏对象及其“阴影”)。 我需要将它们组合到同一个类中,因此有以下问题:Cocos2d iphone Cocos2d:合成包含多个精灵的对象的最佳方法,cocos2d-iphone,sprite,aggregation,ccnode,Cocos2d Iphone,Sprite,Aggregation,Ccnode,我需要创建一个包含多个精灵的对象(为了简单起见,需要创建两个:游戏对象及其“阴影”)。 我需要将它们组合到同一个类中,因此有以下问题: 与所描述的类相比,最好的祖先类是什么? 为此,我使用了CCNode。我用以下方式重写了它的draw方法: - (void)draw { [super draw]; [_item draw]; [_itemShadow draw]; } 突然发现需要以同样的方式更改所有其他CCNode方法。例如,更改位置,可见等,以更改两个精灵我的自定
CCNode
。我用以下方式重写了它的draw
方法:
- (void)draw {
[super draw];
[_item draw];
[_itemShadow draw];
}
位置
,可见
等,以更改两个精灵我的自定义容器聚合中的这些属性:
@interface NBChecker : CCNode {
CCSprite *_item;
CCSprite *_itemShadow;
}
@end
我看到的还有另一种方法-使两个精灵parent
属性指向self
。这将同步这些精灵的位置、可见性等
谁有更好的主意?
希望使用聚合,但不确定我的想法是否正确
谢谢 废弃绘图代码。您只需将这两个精灵添加为CCNode子类的子类。在CCNode子类中编写逻辑代码,每个sprite有两个ivar,以便于访问(就像您已经拥有的那样) 您不需要自己绘制精灵,只要它们是场景图的一部分
精灵将自动相对于其父对象移动和旋转。移动节点以同步移动精灵等。嗨,Stephen!非常感谢你的回答。我们都在等你的书更新到Cocos2d v.3.0抱歉,让你失望了,我的书没有更新版本。可能有更新或新的cocos2d书籍来自Apress,但不是我。