我需要创建一个结合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 )];
}
答案 0 :(得分: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];
答案 1 :(得分:0)
当精灵沿X和Y位置移动时,我设法获得了波浪效果。以下计算来自CCWaves类,稍作修改。如果有人知道这是否可以改善那么请说。为了实现这个效果,我创建了一个名为CCWaveMove的新类,它是CCActionInterval的子类。
-(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 )];
}