2010-06-21 3 views
4

Я пытаюсь создать CCMenuItem с масштабированными изображениями. Например, я попробовал:масштабирование CCMenuItem в Cocos2d (Objective-C)

CCSprite* normalSprite = [CCSprite spriteWithFile:@"button_play.png"]; 
CCSprite* selectedSprite = [CCSprite spriteWithFile:@"button_play.png"]; 
selectedSprite.scale = 1.2; 

CCMenuItem menuItem = [CCMenuItemSprite 
         itemFromNormalSprite:normalSprite 
         selectedSprite:selectedSprite 
         target:self 
         selector:@selector(onPlay:)]; 

Но, похоже, игнорирует CCMenuItemSprite масштаб базовых спрайтов. Есть ли способ сделать это (помимо создания только масштабированных версий базовых образов)? Благодарю.

ответ

0

Нет другого пути. Дело в том, что menuItem только подтверждает файловую часть спрайтов. Он не смотрит на другие свойства, такие как свойство scale.

4

Тигр правильно, как работает CCMenuItem.

Однако, безусловно, есть способ сделать то, что вы хотите. Все, что вам нужно сделать, это подкласс CCMenuItem и переопределить выбранные и невыбранные методы для достижения того, чего вы хотите. На самом деле, я уверен, что вы могли бы просто вырезать и вставить код из CCMenuItemLabel, потому что масштабирование элемента до 1.2 - это именно то, что он делает. (На самом деле, он делает это лучше, так как он оживляет изменения масштаба.)

-(void) selected 
{ 
    // subclass to change the default action 
    if(isEnabled_) {  
     [super selected]; 
     [self stopActionByTag:kZoomActionTag]; 
     CCAction *zoomAction = [CCScaleTo actionWithDuration:0.1f scale: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:1.0f]; 
     zoomAction.tag = kZoomActionTag; 
     [self runAction:zoomAction]; 
    } 
} 
1

CCMenuItemImage Класс также доступен для отображения изображения с его масштабом в CCMenu.Please Проверить эту ссылку http://www.cocos2d-iphone.org/forum/topic/8310

[MainMenu alignItemsVerticallyWithPadding : 15.0f];

Смежные вопросы