Cocos2d iphone cocos2d:鼠标经过时更改CCMenuItemImage?
有没有人知道一种简单的方法,可以在鼠标经过某个项目时为其设置动画 我读过这篇文章: 这似乎涵盖了Cocoa Touch,但在我使用OS X时不起作用 cocos2d参考列出了CCMenuItemImage:的这种方法,我是这样使用的:Cocos2d iphone cocos2d:鼠标经过时更改CCMenuItemImage?,cocos2d-iphone,mouseover,ccmenuitem,ccmenu,Cocos2d Iphone,Mouseover,Ccmenuitem,Ccmenu,有没有人知道一种简单的方法,可以在鼠标经过某个项目时为其设置动画 我读过这篇文章: 这似乎涵盖了Cocoa Touch,但在我使用OS X时不起作用 cocos2d参考列出了CCMenuItemImage:的这种方法,我是这样使用的: CCMenuItem *beginButtonMenuItem = [CCMenuItemImage itemWithNormalImage:@"BeginButton3.png"
CCMenuItem *beginButtonMenuItem = [CCMenuItemImage itemWithNormalImage:@"BeginButton3.png"
selectedImage:@"BeginButtonSel3.png"
target:self
selector:@selector(beginButtonPressed:)];
但是,该菜单项不会在鼠标经过时更改图像,只有在单击时才会响应
CCMenuItem引用具有以下方法:
- (void)已选中,表示“该项目已选中(未激活)”,类似于“鼠标悬停”
谢谢我发现当鼠标经过
CCMenuItem
时,将任何CCMenuItem
更改为选中的
状态非常容易,使其具有悬停效果。首先,确保已设置[window\uSetAcceptsMouseMovedEvents:YES]代码>
然后将此函数添加到CCMenu.m
(可能就在CCMenu
定义之后):
CCMenu实际上没有那么灵活。通常,你最好创建自己的动画按钮类,而不是破解CCMenu的代码。你能简单地描述一下怎么做吗?
- (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;
}