2009-03-05 6 views
5

Utilisation de cocos2d pour le développement de jeux iPhone, je suis confus entre Layer et Scene. Par exemple, Mon jeu simple a plusieurs "Pages UI" comme le menu principal, les meilleurs scores, le plateau de jeu, etc.Couche vs scène dans Cocos2d pour le développement de jeux iPhone

Alors devrais-je utiliser le calque ou la scène pour chaque "page d'interface utilisateur", et pourquoi?

Répondre

4

Révision SpritesDemo.m/.h, il semblerait qu'ils utilisent la couche, puis la création de nouvelles scènes, fixer la couche, puis en remplaçant la scène du directeur

@interface SpriteDemo : Layer 
@interface SpriteManual : SpriteDemo 

Le code fait alors la suivant:

-(void)nextCallback:(id)sender { 
    Scene *s = [Scene node]; 
    [s add: [nextAction() node]]; 
    [[Director sharedDirector] replaceScene s]; 
} 

donc, en bref, la réponse à votre question serait « à la fois », vous utilisez la couche pour représenter votre « page de l'interface utilisateur » réelle, mais vous attacher la couche à une nouvelle scène et de remplacer le courant scène dans le réalisateur.

+0

Vous devez presque remplacer la fonction CCLayer plutôt que CCScene. De cette façon, vous n'avez pas besoin de surcharger la fonction CCScene. – Emadpres

0

Vous n'avez vraiment pas besoin d'utiliser un calque sauf si vous obtenez une sorte d'entrée tactile (parce que c'est la seule classe dans Cocos2D qui implémente TouchEventsDelegate). Les démos fonctionnent bien si vous mettez leur code directement sur la scène sans le calque, donc pour autant que je sache, ils ont seulement fait cela pour démontrer d'autres fonctionnalités de Cocos2D (ajouter des enfants, définir des positions, etc).

2

Il est facile:

Ils ont un CCLayer dans ces exemples et une méthode de scène + qui fait une nouvelle scène et attache la couche sur elle. Parce qu'une couche n'est pas une "page d'interface utilisateur" comme vous l'avez nommée. Une scène est une "page d'interface utilisateur".

Sur les deux (scène et calque), vous pouvez ajouter plusieurs calques en tant qu'enfants. Vous pouvez ainsi empiler autant de couches que vous le souhaitez. C'est en fait un bon moyen d'activer le multitouch - en créant une couche pour chacun de vos objets et en activant les touches sur ces couches. Bottom line, la façon dont ils l'ont fait est juste, donc vous devriez aussi travailler avec des calques et utiliser cette méthode de scène + pour attacher la couche principale à la scène.

Espérons que cela aide. Désolé pour mon anglais. Pas indigène.

Questions connexes