2

マウスがその上を通過したときに 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) が選択され、「「マウスオーバー」と同様に、アイテムが選択されました (アクティブ化されていません)」

しかし、サンプルコードはありません...

誰でもこれを実装するのを助けることができますか?

ありがとう

4

1 に答える 1

0

マウスがその上を通過したときに状態をCCMenu変更して、ホバー効果を与えるのは非常に簡単であることがわかりました。まず、設定されていることを確認してくださいCCMenuItemselected[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;
}
于 2014-07-01T02:09:59.927 に答える