我在我的小項目中使用CCMenu
,它有三個按鈕。我需要這些按鈕來保持觸發,如果他們檢測到觸摸,並且這是不正常的行爲,我決定繼承CCMenuItem
並重寫一些方法。子類Cocos2D MenuItem與Objective-C
這兩種方法我希望覆蓋有:
-(void) selected
{
// subclass to change the default action
if(isEnabled_) {
[super selected];
[self stopActionByTag:kZoomActionTag];
originalScale_ = self.scale;
CCAction *zoomAction = [CCScaleTo actionWithDuration:0.1f scale:originalScale_ * 1.2f];
zoomAction.tag = kZoomActionTag;
[self runAction:zoomAction];
}
}
-(void) unselected
{
// subclass to change the default action
if(isEnabled_) {
[super unselected];
[self stopActionByTag:kZoomActionTag];
CCAction *zoomAction = [CCScaleTo actionWithDuration:0.1f scale:originalScale_];
zoomAction.tag = kZoomActionTag;
[self runAction:zoomAction];
}
}
所以在我的子類,我只是複製這些完全是,但隨着新功能取代裏面的代碼。爲了簡單起見,我們會說:現在
-(void) selected
{
//turn a sprite around
mySprite.rotation = 0;
}
-(void) unselected
{
//turn a sprite around
mySprite.rotation = 180;
}
,在mySprite上會在主體代碼,它被導入到這個子類的標題來聲明。
問題是mySprite無法看到,它出現undeclared
錯誤。我應該使用[super selected]
而不是mySprite
?我試過這個,我得到了完全相同的錯誤。
謝謝。