2011-08-09 10 views
5

Skaluję mój obiekt ikonki w cocos2d za pomocą metody CCScaleTo. Nie jest to idealne skalowanie, więc używam tego kodu:Czym różni się ccScaleBy od ccScaleTo w cocos2d?

id action1=[CCScaleTo actionWithDuration:0.5 scale:1.25]; 
id action2=[CCScaleBy actionWithDuration:0.5 scale:.25]; 
id action3=[CCScaleTo actionWithDuration:0.5 scale:1.25]; 
id action4=[CCScaleTo actionWithDuration:0.5 scale:.25]; 

[timeUpImg runAction:[CCSequence actions:action1,action2,action3,action4,nil]]; 

To działa idealnie.

Nie wiem, jaka jest różnica między ccScaleBy i CCScaleTo, a także jak korzystać z metody "odwrotnej". Czy ktoś może to wyjaśnić?

Odpowiedz

18

CCScaleTo skaluje węzeł/ikonkę do bezwzględnego współczynnika skali, podczas gdy CCScaleBy skaluje go o współczynnik względem aktualnej skali.

Na przykład załóżmy, że węzeł obecnie nie skali 0.25:

  • [CCScaleTo actionWithDuration:0.5 scale:2.0] modyfikuje skalę do 2.0 (ignoruje bieżącą skalę)

  • [CCScaleBy actionWithDuration:0.5 scale:2.0] modyfikuje skalę do 0.5 (0,25 * 2.0)

W drugim pytaniuMetodazwraca instancję podklasy CCAction, która daje odwrotny efekt oryginalnej akcji. Na przykład: [[CCScaleBy actionWithDuration:0.5 scale:2.0] reverse] zwróci [CCScaleBy actionWithDuration:0.5 scale:0.5], a zwróci [CCScaleBy actionWithDuration:0.5 scale:0.25]

+0

dzięki Lukman. teraz moja wątpliwość jest jasna ...... – banu

+0

+1 za wyjaśnienie na przykładzie. thanx – Farhan

Powiązane problemy