如何在cocos2d中正确覆盖超类更新方法

时间:2012-10-10 19:42:33

标签: cocos2d-iphone

我制作了一个简单的物理精灵,它将自动触发更新选择器并相应地将精灵移动到b2body成员集。

然而,当我做物理精灵的子类化时,我想扩展该更新方法以执行更多操作。当我覆盖该更新方法时,我不知何故需要调用超类更新方法,以便它可以在我在子类中开展业务之前开展业务。

以下是一些代码:

超类:

    /**
 * SELECTOR
 * This selector updates the sprites position
 */
-(void) update:(ccTime) dt {
    CCLOG(@"PSprite update");
    if (self.body) {

        //Get the body's position in pixels
        CGPoint newLocationForSprite = ccp(self.body->GetPosition().x * PTM_RATIO, self.body->GetPosition().y * PTM_RATIO);
        //positioning self
        [self setPosition:newLocationForSprite];
    }
}

子类:

-(void) update:(ccTime) dt {
//I want to call my superclass's update method
CCLOG(@"Subclass update");
}

1 个答案:

答案 0 :(得分:4)

子类代码

- (void) update:(ccTime)dt
{
    [super update: dt];

    // do anything you want
}