0

この coe o show リップル アクションを画像に使用しています

  CCSprite * ghost = [CCSprite spriteWithFile:@"ghost.png"];
    [ghost setPosition:ccp(500,600)]; 

    CCRipple3D* ripple = [CCRipple3D actionWithPosition:ghost.position radius:ghost.contentSize.width  waves:4 amplitude:20 grid:ccg(40,40) duration:5.0];


    repeatt = [CCRepeatForever actionWithAction: ripple];
    [ghost runAction:repeatt ];

    [self addChild:ghost];

それは私の画像のリップルアクションを作成しますが、この画像を固定パスを介して移動する必要があります..つまり、x軸(0)からx(500)まで移動する必要があり、x(500)を取得した後、開始する必要がありますx(0) から repetdly.but リップル アクションを削除せずに。

これを行う方法 よろしくお願いします。

4

1 に答える 1

1

これら2つのメソッドを追加してから使用します[self runMyAction:sprite];

- (void)moveActionComplete:(CCSprite*)sprite{
    sprite.position = ccp(0,600);
    [self runMyAction:sprite];
}

- (void)runMyAction:(CCSprite*)sprite{
    CCMoveTo *moveAction = [CCMoveTo actionWithDuration:30 position:ccp(500, 600)];
    CCCallFuncN *callbcak = [CCCallFuncN actionWithTarget:self selector:@selector(moveActionComplete:)];
    CCSequence *action = [CCSequence actions:moveAction, callbcak, nil];
    [sprite runAction:action];
}

また、リップルの持続時間が非常に遅いため、機能していないようです。移動時間を長くすると、移動が遅くなり、波及効果が見えるようになります。
持続時間で遊ぶ

于 2012-07-09T15:49:10.407 に答える