0

位置アニメーションの対象となる CCSprite があります。完璧にアニメーションしています。アニメーションを開始してから最終位置に到達するまでの間のある時点で、CCSprite の正確な位置を取得したい

sprite.position が最終的な位置を返すことを知っています

アニメーションコードは次のとおりです。

sprite = [CCSprite spriteWithFile:@"sprite.png"];
[sprite setPosition:ccp(winSize.width/2, 170)];
[self addChild:sprite];

CCMoveTo *moveSpriteUp = [CCMoveTo actionWithDuration:2.0 position:ccp(winSize.width/2, 210)];
CCEaseOut *upEase = [CCEaseOut actionWithAction:moveSpriteUp rate:2];

CCMoveTo *moveSpriteDown = [CCMoveTo actionWithDuration:2.0 position:ccp(winSize.width/2, 170)];
CCEaseOut *downEase = [CCEaseOut actionWithAction:moveSpriteDown rate:2];

CCSequence * spriteMoveSeq = [CCSequence actions:upEase, downEase, nil];
CCRepeatForever *spriteRepeat = [CCRepeatForever actionWithAction:spriteMoveSeq];

[sprite runAction:spriteRepeat]; 
//1 or 1.x seconds later, the sprite's Y postion will be somewhere between 170 and 210, this is what I want to catch

これを行う方法はありますか?

4

1 に答える 1

0

CCDelayTime+はどうCCCallFuncですか?何かのようなもの。-

CCDelayTime *delay = [CCDelayTime actionWithDuration:kDelay];
CCCallFunc *func = [CCCallFunc actionWithTarget:self selector:@selector(getSpritePosition)];

[sprite runAction:spriteRepeat];
[self runAction:[CCSequence actionOne:delay two:func]];

で位置getSpritePositionを取得しsprite(シーン スコープからアクセスできると仮定sprite)、必要なことは何でも行うことができます。

于 2013-08-29T14:56:06.327 に答える