cocos2d: изменить CCMenuItemImage при наведении мыши?
Кто-нибудь знает простой способ анимировать CCMenuItem, когда мышь проходит над ним?
Я прочитал эту ветку:
Cocos2d CCMenuItem анимация на выбор
который, кажется, покрывает Cocoa Touch, но у меня не работает с OS X.
Ссылка cocos2d перечисляет этот метод CCMenuItemImage: который я использовал следующим образом:
CCMenuItem *beginButtonMenuItem = [CCMenuItemImage itemWithNormalImage:@"BeginButton3.png"
selectedImage:@"BeginButtonSel3.png"
target:self
selector:@selector(beginButtonPressed:)];
Однако этот пункт меню не реагирует на изменение изображения при наведении курсора мыши, только при нажатии.
ссылка CCMenuItem имеет этот метод:
- (void) selected с указанием "Элемент выбран (не активирован), аналогично"mouse-over""
но не имеет образца кода...
Кто-нибудь может помочь реализовать это?
Спасибо
1 ответ
Я нашел это довольно легко сделать CCMenu
изменить любой CCMenuItem
к selected
состояние, когда мышь проходит над ним, давая эффект наведения. Во-первых, убедитесь, что вы установили [window_ setAcceptsMouseMovedEvents:YES];
Затем добавьте эту функцию в CCMenu.m
(возможно сразу после ccMouseDragged
определение):
- (BOOL) ccMouseMoved:(NSEvent *)event {
if( ! _visible || ! _enabled)
return NO;
CCMenuItem *currentItem = [self itemForMouseEvent:event];
if(!currentItem) {
if(_highlightedItem != _selectedItem) {
[_highlightedItem unselected];
}
[_highlightedItem release];
_highlightedItem = nil;
return NO;
}
if (currentItem != _highlightedItem) {
[_highlightedItem unselected];
_highlightedItem = currentItem;
[_highlightedItem retain];
[_highlightedItem selected];
}
return YES;
}