как сделать рывок в спрайте - PullRequest
0 голосов
/ 27 декабря 2011

все, я делаю игру, в которой спрайт перемещается из одной позиции в другую рывком в 19 пикселей, в основном я хочу создать игру, похожую на онлайн-укладчик.в магазине приложений в этой игре коробка движется через рывок в 19 пикселей, и объект движется в сетке, у меня есть следующий код, но я не даю мне рывок движения

-(void)actionLayer
{ 
isRunning = 0;

addPixedlValue += 19;
id  actionMove = [CCMoveTo actionWithDuration:6 position:ccp( 50,109)];  //300,100


id actionMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(LayerAction:)];

animateAction  = [CCSequence actions:actionMove, actionMoveDone, nil];


NSLog(@"pixel value %d",addPixedlValue);



[boxSprite runAction:animateAction];    

}


 -(void)LayerAction:(id)sender
{
addPixedlValue +=19;
id  actionMove = [CCMoveTo actionWithDuration:6 position:ccp( 270,109)];  //300,100


id actionMoveDone = [CCCallFuncN actionWithTarget:self  selector:@selector(actionLayer)];

animateAction  = [CCSequence actions:actionMove, actionMoveDone, nil];

[boxSprite runAction:animateAction];
}

1 Ответ

0 голосов
/ 27 декабря 2011

Я думаю, что ваша проблема может быть решена путем планирования селектора на интервал времени, скажем, 0,1, и вы можете обновить положение в соответствии со своим собственным значением.

-(void)moveSprite
{
   sprite.position = ccp ( sprite.position.x + 5 , sprite.position.y); 
}

И отменять планирование селектора всякий раз, когда необходимо остановитьsprite.

Для планирования селектора

[self schedule : @selector ( moveSprite ) interval : 0.1];

Для планирования

[self unschedule : @selector ( moveSprite )]; 

Это поможет вам сделать резкое движение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...