2011-08-09 3 views
5

CCScaleToメソッドを使用して、cocos2dでスプライトオブジェクトを拡大縮小しています。これは完全なスケーリングではないので、私はこのコードを使用します:cocScaleByとccScaleToの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]]; 

これは完全に動作しています。

ccScaleByCCScaleToの違い、および「逆の方法」の使い方についてはわかりません。誰かがそれを説明できますか?

答えて

18

CCScaleToは、ノード/スプライトを絶対スケールファクタにスケーリングし、CCScaleByは、現在のスケーリングに対して相対的にスケーリングします。例えば

、ノードが現在0.25をスケーリングしていると仮定:

  • [CCScaleTo actionWithDuration:0.5 scale:2.0]0.5にスケールを変更します

  • [CCScaleBy actionWithDuration:0.5 scale:2.0](単に現在のスケールを無視する)2.0にスケールを変更します(0.25 * 2.0)

第2の質問では、reverseメソッドは元のアクションの逆効果を与えるCCActionサブクラスのインスタンスを返します。たとえば、[[CCScaleBy actionWithDuration:0.5 scale:2.0] reverse][CCScaleBy actionWithDuration:0.5 scale:0.5]を返し、[[CCScaleBy actionWithDuration:0.5 scale:4.0] reverse]はLukmanに感謝して[CCScaleBy actionWithDuration:0.5 scale:0.25]

+0

を返します。今私の疑いは明らかです...... – banu

+0

例を説明するための+1。高槻 – Farhan

関連する問題