2012-03-13 23 views
0

我有一個ccmenuitemfont及其包含在ccsprite中。 。 觸摸事件被分配給menuitemfont ..我需要得到ccsprite的參考,它包含ccmenuitemfont上的menuitemfont點擊...這是我需要得到父sprite的參考..如何實現?有任何想法嗎 ?我使用的代碼如下:獲取cocos2d中的menuitemfont

CCSprite * ballSprite = [CCSprite spriteWithFile:imageName]; [ballSprite setTag:randomNumber];

CCMenuItem *labelButton=[CCMenuItemFont itemFromString:[NSString stringWithFormat:@"%d",randomNumber]target:self selector:@selector(clickedBallLabel :)]; 
[labelButton setTag:randomNumber]; 
CCMenu *ball=[CCMenu menuWithItems:labelButton, nil]; 
[ball setPosition:ccp([ballSprite boundingBox].size.width/2, [ballSprite boundingBox].size.height/2)]; 
[ballSprite addChild:ball]; 
[self addChild:ballSprite]; 
[ballSprite setPosition:randomStartPoint]; 
id move = [CCMoveTo actionWithDuration:5 position:ccp(randomX, -30)]; 
[ballSprite runAction:move]; 

回答

0

在我看來,你的程序中有一個邏輯問題,你想讓你的labelbutton有一個recation權嗎?當你觸摸它時,爲什麼你需要使用按鈕引用父對象?但是如果確實有必要,你需要一個像這樣的spritesheet: [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@「scene1atlas.plist」]; spriteBatchNode = [CCSpriteBatchNode batchNodeWithFile:@「scene1atlas.png」];

那麼你可以添加你的OBJ到batchnode後,您可以使用[OBJ父]獲取父參考

我不知道我知道你的意思,當按鈕被觸動時,ballsprite應該改變?如果是這樣,你可以直接改變ballsprite爲另一個新的精靈,當然,更好的方法是精靈應該儘可能地進入一個batchnode,否則,如果你的ballsprite是一個spritesheet,那麼使用我之前告訴過的方法

+0

ya我需要參考.... bcoz單擊按鈕標籤..我需要更改包含buttonlabel的精靈的圖像..所以任何方式來獲取精靈的引用或者請幫助我與任何其他即時通訊理解邏輯 – pravi 2012-03-13 11:30:40

相關問題