0

CCMoveアクションと組み合わせてウェーブエフェクトを作成する必要があります。CCJumpアクションは私が必要とするものに非常に近いですが、もちろんジャンプがないので、スプライトが最後のxとyの位置に到達するまでスムーズに上下に移動します。以下は、CCJumpアクションの計算です。誰かが私がこのコードを適応させてジャンプを取り除き、スムーズな流れを可能にするのを手伝ってくれますか?任意のポインタをいただければ幸いです。

-(void) update: (ccTime) t
{
    // parabolic jump (since v0.8.2)
    ccTime frac = fmodf( t * waves_, 1.0f );
    ccTime y = height_ * 4 * frac * (1 - frac);
    y += delta_.y * t;
    ccTime x = delta_.x * t;
    [target_ setPosition: ccp( startPosition_.x + x, startPosition_.y + y )];
}
4

2 に答える 2

0

スプライトが X と Y の位置に沿って移動しているときに、波の効果を得ることができました。以下の計算は、若干の変更を加えた CCWaves クラスから取得したものです。これを改善できるかどうか知っている人がいたら教えてください。この効果を実装するために、CCActionInterval のサブクラスである CCWaveMove という新しいクラスを作成しました。

-(void) update: (ccTime) t
{
    ccTime y = (delta_.y + (sinf(t*(CGFloat)M_PI*waves_) * height_ * 1.0f));
    ccTime x = delta_.x * t;
    [target_ setPosition: ccp( startPosition_.x + x, startPosition_.y + y )];        
}
于 2012-07-25T10:29:06.950 に答える
0

波動にはCCWaveを使用。

id waveAction  = [CCWaves actionWithWaves:5 amplitude:20 horizontal:NO vertical:YES grid:ccg(15,10) duration:20];
id repeate     = [CCRepeatForever actionWithAction:waveAction];
[sprite runAction:repeate];
于 2012-07-24T09:29:00.877 に答える