Pergunta

Usando o Cocos2D para desenvolvimento de jogos para iPhone, estou confuso entre camada e cena. Por exemplo, meu jogo simples tem várias "páginas da interface do usuário", como menu principal, highscores, quadro de jogos etc.

Então, devo usar camada ou cena para cada "página da interface do usuário" e por quê?

Foi útil?

Solução

Revendo o spritesdemo.m/.h, parece que eles estão usando camada e, em seguida, criando novas cenas, anexando a camada e substituindo a cena no diretor

@interface SpriteDemo : Layer
@interface SpriteManual : SpriteDemo

O código então faz o seguinte:

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

Então, em suma, a resposta para sua pergunta seria "ambos", você usa a camada para representar sua "página da interface do usuário" real, mas você anexa a camada a uma nova cena e substitui a cena atual no diretor.

Outras dicas

É fácil:

Eles têm um cclayer nesses exemplos e um método de cena A +que faz uma nova cena e anexa a camada. Porque uma camada não é uma "página da interface do usuário" como você o nomeou. Uma cena é uma "página da interface do usuário".

Em ambos (cena e camada), você pode adicionar mais camadas quando crianças. Assim, você pode empilhar quantas camadas quiser. Esta é realmente uma boa maneira de ativar o MultiTouch - criando uma camada para cada um de seus objetos e permitindo toques nessas camadas. Conclusão, a maneira como eles fizeram isso é certo, então você também deve trabalhar com camadas e usar esse método +cena para anexar a camada principal à cena.

Espero que isto ajude. Desculpe pelo meu Inglês. Não nativo.

Você realmente não precisa usar uma camada, a menos que esteja recebendo algum tipo de entrada de toque (porque é a única classe no Cocos2D que implementa o TouchEventsDelegate). As demos funcionam bem se você colocar o código diretamente em cena sem a camada, tanto quanto eu sei, eles apenas fizeram isso para demonstrar outra funcionalidade do Cocos2D (adicionando crianças, posições de definição, etc.).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top