アクションの新しい方法
私たちは行動を繰り返す必要があるときに以前、我々はする必要があります。
sprite.runAction(cc.Repeat.create(action, 2));
上記のコードは、新しいオブジェクトがそのように理解するのに関係なく、意味的にまたはコードのより困難なことを、繰り返しアクションを再パッケージ化されて作成されます。なぜ我々は、元のアクション、それを使用するように簡単で便利なようjQueryのようにすることはできませんか?
新バージョンでのアクションとして、我々はそうすると、新しいメソッドを追加します。
sprite.runAction(action.repeat(2));
()のみアクション.REPEAT後に循環アクションを高めるために、再生成アクションを必要とすることなく、前と同じで、それはより便利ではないでしょうか?^。^
また、我々はまた、関連するクラスアクションのために、より簡単な方法を追加して新しいオブジェクトを作成することができます最初の文字を小文字にクラス名によって、作成します。
var action = cc.moveBy(2,cc.p(10,10));
上記のコードは、と等価です。
var action = cc.MoveBy.create(2, cc.p(10, 10))
互換性 - ここを参照してください、それは非常に一つのことを心配する必要があります。。。
実際には、我々は、古い方法はまだサポートされている滴を心配するあまりありません。
なぜ追加API
ただ、新しいメソッドを呼び出す方法を述べたが、私たちは、既存のセットに新しいバージョンに新しいメソッドを追加した理由は比較的プログラムにそれを成熟?
実際には、それはだけでなく、コードの外観をより明確にするよう、より多くの人々の習慣に沿って、シンプルなためすべてでした。
チェーンの構文は、私たちはただ、あなたがオブジェクトのメソッドを呼び出すことにより、様々な異なる機能を実現することができ、オブジェクトを生成することができます:
var action = cc.RotateTo.create(0.5, 90).repeat(5).speed(0.5);
または:
-
VARのアクション= CC。RotateTo.create(0.5、90)。
-
アクション。 繰り返し(5);
-
action.speed( 0.5)。
非接触cocos2d-HTML5ユーザは、コードを最初に読み取ることができない - アクションを作成し、その後、実行速度とこのアクションの繰り返し回数が設けられています。
のは古い方法を比較してみましょう:
-
VaRのアクション= cc.RotateTo.create(0.5、90)。
-
VARのアクション1 = CC。Repeat.create(アクション2)。
-
VARアクション2 = cc.Speed.create(アクション1、0.5)。
古い3つのオブジェクトを生成する方法が、また、コードにわずかな汚染を引き起こしました。読み込みと書き込みでは、現実への効率的な新しいアプローチとしてではありません。
また、ので、オブジェクトが不要になった冗長を再生するので、初期化の速度も改善の少しです。
だから、新しいバージョンが古い方法をサポートしていますが、我々はあなたがプログラムを書くための新しい方法に従うことを示唆しているが。
新しいAPIリスト
上記の方法と速度を繰り返すことに加えて、我々はまた、次のメソッドを追加しました。
古いコールの使用状況 | 新しい方法で対応 |
---|---|
cc.Repeat.create(アクション、NUM) | action.repeat(NUM) |
cc.RepeatForever.create(アクション) | action.repeatForever() |
cc.Speed.create(アクション、スピード) | action.speed(スピード) |
cc.Speed.setSpeed(スピード) | action.setSpeed(スピード) |
cc.Speed.getSpeed() | action.getSpeed() |
cc.EaseIn.create(アクション、レート) | action.easing(cc.easeIn(率)) |
cc.EaseOut.create(アクション、レート) | action.easing(cc.easeOut(率)) |
cc.EaseInOut.create(アクション、レート) | action.easing(cc.easeInOut(率)) |
cc.EaseExponentialIn.create(アクション) | action.easing(cc.easeExponentialIn()) |
cc.EaseExponentialOut.create(アクション) | action.easing(cc.easeExponentialOut()) |
cc.EaseExponentialInOut.create(アクション) | action.easing(cc.easeExponentialInOut()) |
cc.EaseSineIn.create(アクション) | action.easing(cc.easeSineIn()) |
cc.EaseSineOut.create(アクション) | action.easing(cc.easeSineOut()) |
cc.EaseSineInOut.create(アクション) | action.easing(cc.easeSineInOut()) |
cc.EaseElasticIn.create(アクション) | action.easing(cc.easeElasticIn()) |
cc.EaseElasticOut.create(アクション) | action.easing(cc.easeElasticOut()) |
cc.EaseElasticInOut.create(アクション、レート) | action.easing(cc.easeElasticInOut(率)) |
cc.EaseBounceIn.create(アクション) | action.easing(cc.easeBounceIn()) |
cc.EaseBounceOut.create(アクション) | action.easing(cc.easeBounceOut()) |
cc.EaseBounceInOut.create(アクション) | action.easing(cc.easeBounceInOut()) |
cc.EaseBackIn.create(アクション) | action.easing(cc.easeBackIn()) |
cc.EaseBackOut.create(アクション) | action.easing(cc.easeBackOut()) |
cc.EaseBackInOut.create(アクション) | action.easing(cc.easeBackInOut()) |
いくつかの例:
-
EaseIn:
-
VARムーブ= cc.MoveBy.create(2、cc.p(winSize.width - 80、0))、緩和(cc.easeIn(2.0))。
-
sprite.runAction(移動)。
-
-
RepeatForever:
-
VARムーブ= cc.MoveBy.create(2、cc.p(winSize.width - 80、0))RepeatForever()。
-
sprite.runAction(移動)。
注意事項
この方法で、実行結果が設定した値で乗算され、繰り返し/スピードアクションオブジェクトを使用して二回繰り返します。
-
VaRのアクション= cc.RotateTo.create(0.5、90)。
-
-
// 6の速度
-
action.speed( 2).speed(3)。
-
action.getSpeed()==> 6。
-
-
// 6の繰り返しの数
action.repeat(2).repeat(3);
转载请注明:https://blog.csdn.net/qinning199/article/details/40452193