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];
    }
    
  • 突然发现需要以同样的方式更改所有其他CCNode方法。例如,更改
    位置
    可见
    等,以更改两个精灵我的自定义容器聚合中的这些属性:

    @interface NBChecker : CCNode {
        CCSprite *_item;
        CCSprite *_itemShadow;
    }
    
    @end
    
    我看到的还有另一种方法-使两个精灵
    parent
    属性指向
    self
    。这将同步这些精灵的位置、可见性等

    谁有更好的主意? 希望使用聚合,但不确定我的想法是否正确


    谢谢

    废弃绘图代码。您只需将这两个精灵添加为CCNode子类的子类。在CCNode子类中编写逻辑代码,每个sprite有两个ivar,以便于访问(就像您已经拥有的那样)

    您不需要自己绘制精灵,只要它们是场景图的一部分


    精灵将自动相对于其父对象移动和旋转。移动节点以同步移动精灵等。

    嗨,Stephen!非常感谢你的回答。我们都在等你的书更新到Cocos2d v.3.0抱歉,让你失望了,我的书没有更新版本。可能有更新或新的cocos2d书籍来自Apress,但不是我。