Cocos2D for iPhoneで、ユーザーがメニュー項目に触れたときにクリックサウンドエフェクトを自動的に再生するにはどうすればよいですか?
私のアイデアは、CCMenu.mのccTouchEndedを次のように変更することでした。
-(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のサブクラスに入れると、機能しません。提案?