J'essaie de comprendre les avantages et les inconvénients de l'utilisation de CCUIViewWrapper dans Cocos2d par rapport à une fonctionnalité portée. Par exemple, serait-il préférable d'utiliser UITableView dans un CCUIViewWrapper, ou d'utiliser CCTableViewSuite. À première vue, je dirais que l'encapsulation est la meilleure approche puisqu'elle me permet probablement de faire tout ce qu'offre UITableView, mais y a-t-il des détails clés qui me manquent? Y a-t-il de sérieuses limitations avec l'encapsuleur, soit avec l'utilisation de l'objet Apple sdk, soit avec l'impossibilité de tirer parti de certaines fonctionnalités de Cocos2d fournies avec un objet porté comme CCTableView?Avantages et inconvénients de l'utilisation de CCUIViewWrapper par rapport à une fonctionnalité portée
Répondre
J'ai copié cet article de here qui pourrait aider à répondre à votre question. Je crois qu'il vaudrait mieux utiliser les fonctions cocos2d avec les wrappers cocos2d, mais vous pouvez les implémenter avec d'autres.
S'il y a des débutants (comme moi-même) qui ont besoin d'aide pour intégrer un élément UIKit avec cocos2d, cela pourrait aider. Comme vous l'avez lu dans le premier post de ce fil Blue Ether a écrit un emballage pour manipuler UIViews. Qu'est-ce qu'un UIView? Regardez http://developer.apple.com/iphone/library/documentation/uikit/reference/uikit_framework/Introduction/Introduction.html, faites défiler vers le bas un peu et vous verrez un diagramme des différents articles UIView; des choses comme UIButton, UISlider, UITextView, UILabel, UIAlertView, UITableView, UIWindow et ainsi de suite. Il y en a plus de 20. Vous pouvez utiliser le code Ethas bleu pour envelopper n'importe lequel d'entre eux à l'intérieur de cocos2d. Ici, je vais envelopper un UIButton, mais expérimenter avec votre choix préféré de l'élément UIView.
Créez un nouveau projet d'application Cocos 2d.
Créez un nouveau fichier NSObject et appelez-le CCUIViewWrapper. Cela vous donnera les fichiers CCUIViewWrapper.h et CCUIViewWrapper.m. Modifier (par copier coller) afin qu'ils les regardent comme bleu Ether les a définis (voir le premier post dans ce fil.
Faites vos HelloWorld.h ressemblent à ce
// HelloWorldLayer.h #import "cocos2d.h" #import <UIKit/UIKit.h> #import "CCUIViewWrapper.h" @interface HelloWorld : CCLayer { UIButton *button; CCUIViewWrapper *wrapper; } +(id) scene; @end
et votre HelloWorld.m comme celui-ci
// HelloWorldLayer.m
#import "HelloWorldScene.h"
// HelloWorld implementation
@implementation HelloWorld
+(id) scene
{
CCScene *scene = [CCScene node];
HelloWorld *layer = [HelloWorld node];
[scene addChild: layer];
return scene;
}
-(void)buttonTapped:(id)sender
{
NSLog(@"buttonTapped");
}
// create and initialize a UIView item with the wrapper
-(void)addUIViewItem
{
// create item programatically
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Touch Me" forState:UIControlStateNormal];
button.frame = CGRectMake(0.0, 0.0, 120.0, 40.0);
// put a wrappar around it
wrapper = [CCUIViewWrapper wrapperForUIView:button];
[self addChild:wrapper];
}
-(id) init
{
if((self=[super init])) {
[self addUIViewItem];
// x=160=100+120/2, y=240=260-40/2
wrapper.position = ccp(100,260);
[wrapper runAction:[CCRotateTo actionWithDuration:4.5 angle:180]];
}
return self;
}
- (void) dealloc
{
[self removeChild:wrapper cleanup:true];
wrapper = nil;
[button release];
button=nil;
[super dealloc];
}
@end
créer et exécuter. cela devrait produire un bouton de rotation au milieu de la scène. Vous pouvez appuyer sur le bouton pendant qu'il tourne. il va écrire un message texte dans la console.
CCUIViewWrapper n'est pas une bonne solution. J'ai essayé et enlevé. Le problème est qu'il enveloppe l'élément UIKit dans un conteneur et l'ajoute en tant que vue sur le directeur sur la vue principale d'openGL. Un problème avec cela est que vous ne serez pas en mesure d'ajouter une autre image-objet sur le dessus. Très limité.
- 1. Avantages et inconvénients de l'utilisation de sqlite3 par rapport à l'implémentation d'une table personnalisée
- 2. Avantages et inconvénients de la sécurité azure
- 3. Avantages et inconvénients de DotNetNuke?
- 4. Inconvénients de TestNG par rapport à jUnit?
- 5. Avantages et inconvénients de DFC et DFS?
- 6. dactylographié par rapport à dactylographié rigoureusement quels sont les avantages et les inconvénients
- 7. Quels sont les avantages/inconvénients d'utiliser un synonyme par rapport à une vue?
- 8. Avantages et inconvénients: Hibernate vs EJB 3
- 9. Quels sont les avantages/inconvénients de YSlow par rapport à Speed Tracer?
- 10. Quels sont les avantages et les inconvénients d'une feuille de sprite par rapport à une séquence d'images?
- 11. Utilisation de WebServiceHostFactory Avantages et inconvénients
- 12. Quels sont les avantages et les inconvénients de rspec moqueur par rapport à d'autres cadres de moquerie?
- 13. Quels avantages/inconvénients MSTest et NUnit ont-ils les uns par rapport aux autres?
- 14. Quels sont les avantages et les inconvénients de l'utilisation d'OpenID?
- 15. Analyseur XML et ses avantages et inconvénients
- 16. Avantages et inconvénients avec cache automatisé/manuel
- 17. Programmation sous machine virtuelle - avantages et inconvénients
- 18. Quels sont les avantages et les inconvénients du bouton d'abonnement récurrent de PayPal par rapport à leurs autres plans
- 19. Avantages et inconvénients des événements de base de données
- 20. avantages de php par rapport à d'autres langages de script
- 21. Avantages et inconvénients pour CAAnimationGroup vs CAKeyframeAnimation
- 22. Avantages et inconvénients pour l'incorporation des manifestes
- 23. Avantages et inconvénients d'utiliser les auditeurs d'interface
- 24. Avantages des données de modélisation dans une table par rapport à l'aide de deux tables
- 25. php .tpl système de gestion de contenu - avantages et inconvénients
- 26. Avantages et inconvénients du fichier .htc
- 27. Machinist vs FactoryGirl - avantages et inconvénients
- 28. Castle Windsor ou Spring.NET - avantages et inconvénients
- 29. Avantages/inconvénients des environnements de script intégrés?
- 30. quel design choisir? - avantages et inconvénients
Salut RubberDuck qu'est-ce que vous préférez au lieu de CCUIViewWrapper? Merci – yatanadam
La meilleure option est de créer vos propres contrôles en utilisant cocos, au lieu d'utiliser UIKIT. – SpaceDog