2013-08-29 3 views
0

위치 애니메이션을 수행중인 CCSprite가 있습니다. 그것은 완벽하게 움직입니다. 시간의 어느 시점에서 는 애니메이션을 시작하고 최종 위치에 도달 사이에, 나는Cocos2s : 대상에 도달하기 전에 애니메이 션하는 동안 CCSprite 위치 가져 오기

내가 sprite.position 여기

가있는 최종 위치를 반환합니다 것을 알고있는 CCSprite의 정확한 위치를 얻으려면 애니메이션 코드 :

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 

나는 이것을 할 수 있습니까?

답변

0

CCDelayTime + CCCallFunc? 당신이 sprite 위치를 얻을 수 getSpritePosition에서 봐라,

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

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

뭔가 (sprite이 장면 범위에서 액세스 할 수있는 가정), 그리고 당신이 그것으로 무엇을해야합니까.