2009-03-05 17 views
5

Używanie cocos2d do tworzenia gier na iPhone'a, jestem zdezorientowany między warstwą a sceną. Na przykład Moja prosta gra ma kilka "stron UI", takich jak menu główne, najlepsze wyniki, plansza itp.Warstwa vs Scena w Cocos2d dla rozwoju gry na iPhone'a

Czy powinienem używać Warstwy lub Sceny dla każdej "strony interfejsu użytkownika" i dlaczego?

Odpowiedz

4

Przegląd SpritesDemo.m/.h, wydaje się, że są one za pomocą warstw, a następnie tworzenie nowych scen, załączając warstwę, a następnie zastąpienie scenę na dyrektora

@interface SpriteDemo : Layer 
@interface SpriteManual : SpriteDemo 

Następnie kod robi następujące:

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

Więc, krótko mówiąc, odpowiedź na to pytanie będzie „zarówno”, należy użyć warstwy przedstawiają rzeczywisty „UI Page”, ale trzeba dołączyć warstwę do nowej sceny i zastąpi obecny scena w reżyserii.

+0

Prawie trzeba zastąpić funkcję CCLayer zamiast CCScene. W ten sposób nie musisz w ogóle zastępować funkcji CCScene. – Emadpres

0

Naprawdę nie musisz używać warstwy, chyba że dostajesz jakieś dane wejściowe dotyku (ponieważ jest to jedyna klasa w Cocos2D, która implementuje TouchEventsDelegate). Dema działają dobrze, jeśli umieścisz ich kod bezpośrednio na scenie bez warstwy, więc o ile mogę powiedzieć, zrobili to tylko po to, aby zademonstrować inną funkcjonalność Cocos2D (dodawanie dzieci, ustawianie pozycji itd.).

2

To proste:

Mają CCLayer w tych przykładach i + Sposób sceny sprawia, że ​​nową scenę i przywiązuje warstwę na nim. Ponieważ warstwa nie jest "stroną interfejsu użytkownika", tak jak ją nazwałeś. Scena to "Strona interfejsu".

Po obu (scena i warstwa) można dodać więcej warstw jako dzieci. Dzięki temu możesz układać dowolną liczbę warstw. Jest to właściwie dobry sposób na włączenie multitouch - poprzez utworzenie warstwy dla każdego z obiektów i umożliwienie dotykania tych warstw. Podsumowując, sposób, w jaki to zrobili, jest właściwy, więc powinieneś też pracować z warstwami i użyć tej + metody sceny, aby dołączyć główną warstwę do sceny.

Mam nadzieję, że to pomoże. Przepraszamy za mój angielski. Nie rodzimych.