2011-07-04 11 views
5

Czuję się głupio zadając to pytanie, ale nie mogę znaleźć jasnej odpowiedzi w dowolnym miejscu (lub w dużej części odpowiedzi), więc czuję, że muszę zapytać. Czy jest ktoś, kto może wyjaśnić, w jaki sposób działa paralaksaRatio CCParallaxNode?ParallaxNode CCParallaxNodeRatio (wyjaśnienie)

Sprawdziłem źródło CCParallaxNode i nie wyjaśnia go w ogóle. Przeszukałem Internet i StackOverflow szeroko. Próbowałem zrobić dobry stary proces i błąd. Wciąż jestem zdezorientowany.

[parallaxLayer addChild:backgroundEffect_subtleRed z:100 parallaxRatio:ccp(0.5, 0.5) positionOffset:backgroundEffect_subtleRed.position]; 

W ten kawałek kodu Próbuję dodać emiter cząstek do parallaxLayer i go przesunąć trochę jak można oczekiwać obiekt na warstwie paralaksy przenieść. Niestety w ogóle nie widzę cząstek. Miałem ten problem za każdym razem, gdy próbuję dodać coś do paralaksNode, gdy chcę go przenieść. Używam CCParallaxNode do tworzenia statycznych warstw interfejsu użytkownika, ale nie mogłem ich używać do tego, do czego zostały stworzone.

Podsumowując:

parallaxRatio zajmuje CGPoint. Do czego mają zastosowanie elementy pływające w CGPoint? Czy są stosunki xiy w stosunku do okna? Czy są one (parallaxLayerMovementInRelationTo, parentNode)? Sprawny fragment przykładowego kodu byłby bardzo pomocny.

Dziękuję.

Odpowiedz

13

Cytując z książki Cocos2d I właścicielem:

[paraNode addChild:para1 z:1 parallaxRatio:CGPointMake(0.5f, 0) positionOffset:topOffset]; 
    [paraNode addChild:para2 z:2 parallaxRatio:CGPointMake(1, 0) positionOffset:topOffset]; 
    [paraNode addChild:para3 z:4 parallaxRatio:CGPointMake(2, 0) positionOffset:midOffset]; 
    [paraNode addChild:para4 z:3 parallaxRatio:CGPointMake(3, 0) positionOffset:downOffset]; 

„The CCParallaxNode tworzony jest jak każdy inny węzeł, ale jego dzieci są dodawane za pomocą specjalnego inicjator Dzięki niemu można określić stosunek paralaksy, która jest. CGPoint używany jako mnożnik dla dowolnego ruchu węzła CCParallaxNode W tym przypadku para1 przemieszczałaby się o połowę prędkości, para2 przy normalnej prędkości, para3 z podwójną prędkością CCParallaxNode, i tak dalej "

Tak więc, w zasadzie, jego stosunek, w którym poszczególne warstwy są przesuwane w stosunku do ruchu całego CCParallaxNode.

+0

Dziękuję, to całkiem jasne. –

+0

Jedyne co mnie martwi to to, że drugi pływak jest zawsze zerowy ... Przynajmniej daje mi to roboczą wiedzę, która jest na razie wystarczająco dobra. –

+2

Mówi się, aby nie przenosić żadnego z węzłów potomnych wzdłuż osi Y. W tym przykładzie jedynym ruchem, który powinien być dozwolony, jest ruch na osi X. Mówi się, że nawet jeśli główny węzeł CCParallaxNode porusza się wzdłuż osi y, węzły podrzędne nie powinny przesuwać się w ogóle wzdłuż osi Y. Możesz to zmienić. –