1
我做了一个简单的物理sprite,它会自动触发更新选择器,并相应地将sprite移动到b2body成员集。如何在cocos2d中正确地覆盖超类更新方法
但是,当我做了物理sprite的子类,我想扩展该更新方法来做更多的动作。当我重写这个更新方法时,我需要调用超类更新方法,以便在我在子类中完成业务之前完成业务。
下面是一些代码:
超类:
/**
* 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");
}
看来,这不是一个公共方法,这它应该是,但对我的情况我需要它。太糟糕了,它们在Objective C中不受保护,我会接受这一点 – chrs