2012-07-12 33 views
0

在Cocos2D for iPhone中,只要用戶觸摸了菜單項,我該如何自動播放點擊soundeffect 在物品觸摸上播放soundeffect

我的想法是改變ccTouchEnded在CCMenu.m如下:

-(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event { 
    NSAssert(state_ == kCCMenuStateTrackingTouch, 
     @"[Menu ccTouchEnded] -- invalid state"); 

    [selectedItem_ unselected]; 
    [selectedItem_ activate]; 

    state_ = kCCMenuStateWaiting; 

    // Play a click effect whenever any menu item was touched 
    [MyMusicHandler playClick]; 

}

這工作和做什麼,我想要它做的。但它是「黑客來源」,而我更傾向於繼承CCMenu。但是,如果我將完全相同的方法放入CCMenu的子類中,則不起作用。建議?

回答

0

這是我要做的事在我的比賽之一:

中的init(GETextMenuItem子類CCMenuItemLabel):

confirmMenuItem_=[GETextMenuItem textMenuItemWithText:@"Buy" 
              dimensions:CGSizeMake(90,32) 
              alignment:UITextAlignmentCenter 
               font:@"Cochin-Bold" 
              fontSize:17 
               target:self 
              selector:@selector(onConfirm)]; 

,並在選擇器(GameEngine是一個家庭成年單身,提供各種的服務隨時隨地可用):

-(void) onConfirm{ 

    // immediately prevent a double click 

    menu_.isTouchEnabled=NO; 
    [[GameEngine sharedGameEngine].soundProvider playFxNowWithSound:@"sound_fx_menu_buy.mp3"]; 
    NSString *params = [NSString stringWithFormat:@"quantity:%i",quantity_]; 
    [consumer_ menuReturnsForTag:self.menuTag withParams:params]; 
    [self flyOut]; 
}