アクション:EASE(イーズ)


イーズアクションは, 内部アクションの時間を変更する特殊なアクションです.
FLASHの世界ではしばしば"Tweening"または"Easeing"アクションと呼ばれています.

これらのアクションは内部アクションの速度を変更しますが, アクションが要する総合時間を変更するものではありません.内部アクションに通常で5秒かかる場合, 構成後のアクションでも合計して5秒かかることになります.

イーズアクションは時間の直線性を変更するのです.

ease_linear.png


例えば, 内部アクションを加速または減速することができます.

これらのアクションは3つのタイプに分類することができます:

  • インアクション: アクションの初めに加速する
  • アウトアクション: アクションの終わりに加速する
  • インアウトアクション: アクションの初めと終わりに加速する

アクションの詳細については次のページを参照してください.

イーズアクションについて

ease_cubic.png

次の数式を使用して内部アクションを加速します.

 
-(void) update:(ccTime) t
{
    [inner update: powf(t,rate)];
}
 

バリエーション:

  • CCEaseIn: アクションの初めに加速する
  • CCEaseOut: アクションの終わりに加速する
  • CCEaseInOut: アクションの初めと終わりに加速する

引数の"rate"は加速率を示します.

使用例:

 
// 初めに加速する
id action = [CCMoveTo actionWithDuration:2 position:ccp(100,100)];
id ease = [CCEaseIn actionWithAction:action rate:2];
[sprite runAction: ease];
 
// 終わりに加速する
id action = [CCMoveTo actionWithDuration:2 position:ccp(100,100)];
id ease = [CCEaseIn actionWithAction:action rate:2];
[sprite runAction: ease];
 
// 初めと終わりに加速する
id action = [CCMoveTo actionWithDuration:2 position:ccp(100,100)];
id ease = [CCEaseInOut actionWithAction:action rate:2];
[sprite runAction: ease];
 

イーズエクスポーネンシャルアクション

ease_exp.png
  • CCEaseExponentialIn
  • CCEaseExponentialOut
  • CCEaseExponentialInOut

使用例:

 
id scaleAction = [CCScaleTo actionWithDuration:2.5 scale:.8];
id easeAction = [CCEaseExponentialIn actionWithAction:scaleAction];
[label runAction: easeAction];
 

イーズサインアクション

ease_sine.png
  • CCEaseSineIn
  • CCEaseSineOut
  • CCEaseSineInOut

イーズエラスチックアクション

ease_elastic.png

これらのアクションは時間の弾性シミュレーションを変更します.エラスチックアクションは1より大きいか0より小さい時間を使用するので, 内部アクションは, この特殊な値でも処理できるものを準備するべきです.

また, 任意の値で2回以上トリガーさせる場合も同様です. 例えば, MoveBy?, ScaleBy, RotateBy?のようなシンプルなアクションでは問題なく動作しますが, シーケンスアクションやスポーンアクションでは予期しない結果が生じる可能性があります.

バリエーション:

  • CCEaseElasticIn
  • CCEaseElasticOut
  • CCEaseElasticInOut

使用例:

 
// 引数の'period'はアクションをどれだけ伸縮するか決める値.
// 推奨値: 0.3~0.45
 
// 始めに伸縮
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseElasticIn actionWithAction:move period:0.3f];
[sprite runAction: action];
 
// 終わりに伸縮
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseElasticOut actionWithAction:move period:0.3f];
[sprite runAction: action];
 
// 始めと終わりに伸縮
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseElasticInOut actionWithAction:move period:0.3f];
[sprite runAction: action];
 

イーズバウンスアクション

ease_bounce.png

このアクションはバウンドエフェクトをシミュレートします.

任意の値で2回以上トリガーさせる場合, 内部アクションはその値でも処理できるものを準備するべきです.例えば, MoveBy?, ScaleBy, RotateBy?のようなシンプルなアクションでは問題なく動作しますが, シーケンスアクションやスポーンアクションでは予期しない結果が生じる可能性があります.

バリエーション:

  • CCEaseBounceIn
  • CCEaseBounceOut
  • CCEaseBounceInOut

使用例:

 
// 始めにバウンス効果を加える
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseBounceIn actionWithAction:move];
[sprite runAction: action];
 
// 終わりにバウンス効果を加える
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseBounceOut actionWithAction:move];
[sprite runAction: action];
 
// 始めと終わりにバウンス効果を加える
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseBounceInOut actionWithAction:move];
[sprite runAction: action];
 

イーズバックアクション

ease_back.png

任意の値で2回以上トリガーさせる場合, 内部アクションはその値でも処理できるものを準備するべきです.例えば, MoveBy?, ScaleBy, RotateBy?のようなシンプルなアクションでは問題なく動作しますが, シーケンスアクションやスポーンアクションでは予期しない結果が生じる可能性があります.

バリエーション:

  • CCEaseBackIn
  • CCEaseBackOut
  • CCEaseBackInOut

使用例:

 
// 始めにイーズバック効果を加える
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseBackIn actionWithAction:move];
[sprite runAction: action];
 
// 終わりにイーズバック効果を加える
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseBackOut actionWithAction:move];
[sprite runAction: action];
 
// 始めと終わりにイーズバック効果を加える
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseBackInOut actionWithAction:move];
[sprite runAction: action];
 

アクション:スピード

スピードアクション

スピードアクションは内部アクションの速度を変更します.

使用例:

 
id move = [CCMoveBy actionWithDuration:3 position:ccp(350,0)];
id action = [CCSpeed actionWithAction: move speed:1.0f];  // ここで速度の変更はできない
 
// ただし, 後の速度を変更することは可能
[action setSpeed: 2.5f]; // 速度は 2.5 倍
[action setSpeed: 0.5f]; // 速度は 0.5 倍
 

添付ファイル: fileease_linear.png 974件 [詳細] fileease_sine.png 847件 [詳細] fileease_exp.png 893件 [詳細] fileease_elastic.png 793件 [詳細] fileease_bounce.png 915件 [詳細] fileease_cubic.png 826件 [詳細] fileease_back.png 904件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-24 (日) 17:14:25 (2525d)