0

我需要创建一个包含多个精灵的对象(为简单起见,2 个:游戏对象及其阴影)。我需要将它们组合到同一个类中,因此有以下问题:

  1. 所描述的最好的祖先类是什么?我用于CCNode此目的。我通过以下方式覆盖了它draw的方法:

    - (void)draw {
        [super draw];
        [_item draw];
        [_itemShadow draw];
    }
    

突然发现需要以同样的方式更改所有其他 CCNode 方法。例如。change position,visible等,以便在我的自定义容器聚合中更改两个 Sprite 中的这些属性:

@interface NBChecker : CCNode {
    CCSprite *_item;
    CCSprite *_itemShadow;
}

@end

我看到了另一种方式 - 使两个精灵parent属性都指向self. 这应该同步这些精灵的位置、可见性等。

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

谢谢!

4

1 回答 1

1

报废抽奖代码。您需要做的就是将两个精灵添加为 CCNode 子类的子类。在 CCNode 子类中编写您的逻辑代码,并为每个精灵有两个 ivars 以便于访问(就像您已经拥有的一样)。

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

精灵将自动相对于其父级移动和旋转。移动节点以统一移动精灵等。

于 2014-03-17T08:20:12.280 回答