Ios Cocos2s:在到达目的地之前设置动画时获取CCSprite位置

Ios Cocos2s:在到达目的地之前设置动画时获取CCSprite位置,ios,animation,cocos2d-iphone,ccsprite,Ios,Animation,Cocos2d Iphone,Ccsprite,我有一个CCSprite,它正在经历一个位置动画。它是完美的动画。 在某个时间点,在开始动画和到达最终位置之间,我想得到CCSprite的确切位置 我知道sprite.position将返回最终位置 以下是动画代码: sprite = [CCSprite spriteWithFile:@"sprite.png"]; [sprite setPosition:ccp(winSize.width/2, 170)]; [self addChild:sprite]; CCMoveTo *moveSpri

我有一个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

有什么办法可以做到吗?

那么
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
),并对其执行任何需要的操作