2009-06-10 28 views
0

Ce que j'essaie d'accomplir avec Cocos2d, est de créer un menu horizontal, qui peut être glissé de gauche à droite. J'ai posté une image, pour montrer mon idée.Menu déroulant en utilisant MenuItem

L'image ci-dessous a une barre blanche, où je veux montrer des objets MenuItem, maintenant je veux être en mesure de faire un balayage dans la région blanche, de sorte que l'élément de menu suivant est centré.

Example http://www.wimhaanstra.com/images/MenuExample.png

Le problème que je suis confronté est, je voudrais vraiment utiliser le menu (& MenuItem) fonctionnalité de Cocos2d, mais il semble en quelque sorte que l'objet MenuItem n'accepte pas des touches autres que taper juste. Aussi je veux que le balayage soit détecté non seulement sur le MenuItem, mais toute la barre blanche.

Quelle serait la meilleure approche pour cela?

  • D'une certaine façon incorporer un UIScrollView, mais ce serait dommage, parce que je voudrais utiliser OpenGL pour tout
  • Subclasss la classe MenuItem, pour créer un où le ccTouchBegan est manipulé et se déplacer en quelque sorte l'ensemble du menu ? Laissez simplement l'idée entière de Menu derrière, et remplacez les menus et les éléments de menu par des sprites qui prennent en charge le toucher.

J'ai lu quelque part que MenuItem ne devrait pas vraiment être utilisé pour ce genre de travail, mais pourquoi pas?

Répondre

1

La couche peut gérer les événements tactiles. vous pouvez vous mettre menuItems dans une couche.

détectez un coup, et déplacer les menuItems les

+0

il y a un post sur Looping/Menu Scrolling, qui est cool. et quelques codes sources de Joao Caxaria. Vous changez du code pour contrôler la position de l'article. J'espère que ça aide. http://www.cocos2d-iphone.org/forum/topic/139 – situee