Как переместить CCSprite - PullRequest
       3

Как переместить CCSprite

1 голос
/ 18 апреля 2011

Мне нужно переместить спрайт из стороны в сторону.Я использую:

CCSprite *man;

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

[man runAction:actionMove];

Когда он перемещен в (20 300), мне нужно переместить спрайт в (20,0), а затем переместить его в (20 300) и обратно.Как я могу это сделать?Спасибо.

Ответы [ 2 ]

7 голосов
/ 18 апреля 2011
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]];
}
5 голосов
/ 18 августа 2013

Не уверен, правильно ли я вас понял, но это должно переместить вашего человека на 300 пикселей по оси Y вверх, а затем снова вернуться к 0 пикселей на той же оси через 2 секунды. Независимо от того, где он был до того, как человек переместится на +300 по y, а затем -300 по y.

Это с 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...