2011-04-18 54 views
1

我需要将sprite从一边移到另一边。我使用:如何移动CCSprite

CCSprite *man; 

id actionMove = [CCMoveTo actionWithDuration:1 position:ccp(20,300)]; 

[man runAction:actionMove]; 

当它移动到(20300)我需要移动精灵(20,0),然后将其移动到(20300)和背部。 我该怎么做?谢谢。

+0

不是接受一个答案,请。 – Binarian 2013-08-27 15:10:33

回答

7
CCMoveTo *move = [CCMoveTo actionWithDuration:1 position:ccp(20,300)]; 
CCCallFuncN *move_done = [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished)]; 
[man runAction:[CCSequence actions:move1,move_done1,nil]]; 

-(void)spriteMoveFinished 
{ 
    CCMoveTo *move1 = [CCMoveTo actionWithDuration:1 position:ccp(20,0)]; 

    [man runAction:[CCSequence actions:move1,nil]]; 
} 
+0

谢谢我已经修复它) – 2011-04-18 14:54:45

5

不知道我是否正确,但是这应该在y轴上向上移动您的男子300像素,然后在2秒内再次回到0像素。 不依赖于之前男人在y上移动了+300,然后在y上移动-300。

这是CCMoveBy:

CCAction *moveOne = [CCMoveBy actionWithDuration:1 position:ccp(0, 300)]; 
CCAction *moveTwo = [CCMoveBy actionWithDuration:1 position:ccp(0, -300)]; 
CCSequence *manMoving = [CCSequence moveOne, moveTwo, nil]; 
[man runAction:manMoving]; 

这是CCMoveTo:

CCAction *moveOne = [CCMoveTo actionWithDuration:1 position:ccp(20, 300)]; 
CCAction *moveTwo = [CCMoveTo actionWithDuration:1 position:ccp(20, 0)]; 
CCSequence *manMoving = [CCSequence moveOne, moveTwo, nil]; 
[man runAction:manMoving];