2010-07-02 17 views
0

free4machine 會員 PM這個用戶問題有關的cocos2d CCMenuItemImage重疊

嗨,

我想打一個樣品動畫:

出現在屏幕底部的按鈕,小當按下此按鈕時將出現菜單。 小菜單底部有一個圖標,當按下此圖標時,小菜單將消失。

按鈕,小菜單,圖標,都是CCMenuItemImage的實例。

問題:按下圖標時小菜單不會消失。看起來該圖標不響應觸摸事件。

任何建議或幫助將不勝感激

對不起,我英文不好。

這裏是代碼:

CCMenuItemImage *bg = [CCMenuItemImage itemFromNormalImage:@"b1.png" selectedImage:@"b2.png" ]; 
CCMenuItemImage *button = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button2.png" target:  self selector:@selector(showSideMenu:)]; 

CCMenuItemImage *sideMenu = [CCMenuItemImage itemFromNormalImage:@"s1.png" selectedImage:@"s2.png" ]; 
CCMenuItemImage *backbutton = [CCMenuItemImage itemFromNormalImage:@"backbutton.png" selectedImage:@"backbutton2.  png" target:self selector:@selector(hideSideMenu:)]; 

[ sideMenu addChild: backbutton ]; 

CCMenu *menu = [ CCMenu menuWithItems: bg,button, sideMenu, nil ]; 

[ self addChild: menu]; 

什麼了showSideMenu和hideSideMenu也正在sideMenu出現,並通過使用runAction消失。

謝謝。

回答

1

基於代碼,我看到的唯一問題是backButton不作爲菜單的子項添加。只有bg,button和sideMenu在參數列表中。通過將它添加爲bg的子項,它不會觸發它自己的選擇器,但是bg的。由於bg沒有任何定義,沒有任何反應。最簡單的解決方法是隻需在列表中添加後退按鈕。您的代碼看起來就像這樣:

CCMenuItemImage *bg = [CCMenuItemImage itemFromNormalImage:@"b1.png" selectedImage:@"b2.png" ]; 
CCMenuItemImage *button = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button2.png" target:  self selector:@selector(showSideMenu:)]; 

CCMenuItemImage *sideMenu = [CCMenuItemImage itemFromNormalImage:@"s1.png" selectedImage:@"s2.png" ]; 
CCMenuItemImage *backbutton = [CCMenuItemImage itemFromNormalImage:@"backbutton.png" selectedImage:@"backbutton2.  png" target:self selector:@selector(hideSideMenu:)]; 

CCMenu *menu = [ CCMenu menuWithItems: bg,button, sideMenu, backbutton, nil ]; 

[ self addChild: menu]; 

如果您希望每個按鈕能夠相對於菜單位置,只需設置自己的位置屬性。