Question

En utilisant cocos2d pour le développement de jeux sur iPhone, je suis confus entre couche et scène. Par exemple, Mon jeu simple comporte plusieurs " Pages UI " comme le menu principal, les meilleurs scores, le tableau de jeu, etc.

Donc, devrais-je utiliser un calque ou une scène pour chaque "page de l'interface utilisateur" et pourquoi?

Était-ce utile?

La solution

En examinant SpritesDemo.m / .h, il semblerait qu’ils utilisent un calque, puis créent de nouvelles scènes, attachent le calque puis remplacent la scène sur le réalisateur

@interface SpriteDemo : Layer
@interface SpriteManual : SpriteDemo

Le code procède alors comme suit:

-(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 "les deux", vous utilisez un calque pour représenter votre "page d'interface utilisateur" réelle, mais vous associez le calque à une nouvelle scène et remplacez la scène actuelle dans le réalisateur. .

Autres conseils

C'est simple:

Ils ont un CCLayer dans ces exemples et une méthode + scene qui crée une nouvelle scène et y attache le calque. Parce qu'une couche n'est pas une "page d'interface utilisateur" comme vous l'avez nommé. Une scène est une "page d’interface utilisateur".

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

J'espère que ça aide. Désolé pour mon anglais. Non natif.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top