Я думаю, что ваша проблема может быть решена путем планирования селектора на интервал времени, скажем, 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 )];
Это поможет вам сделать резкое движение.