Я пытаюсь использовать CCMotionStreak, чтобы нарисовать путь с помощью CCSprite.
Init:
CCMotionStreak* streak;
streak = [CCMotionStreak streakWithFade:100 minSeg:1 image:@"streak.png" width:5
length:3 color:ccc4(0, 255, 255, 255)];streak.position = self.theHero.heroSprite.position;
Когда касание заканчивается:
-(void) ccTouchEnded:(UITouch*)touch withEvent:(UIEvent *)event
{
[self unschedule:@selector(doStep:)];
CGPoint touchLocation = [touch locationInView: [touch view]];
CGPoint curPosition = [[CCDirector sharedDirector] convertToGL:touchLocation];
[self.theHero.heroSprite stopAllActions];
//cal the duration, speed is set to 85.0f
float du = ccpDistance(self.theHero.heroSprite.position, curPosition) / 85.0f;
[self.theHero.heroSprite runAction:[CCMoveTo actionWithDuration:du
position:curPosition]];
[self schedule:@selector(doStep:)];
}
- (void)doStep:(ccTime)delta
{
//update the position
[streak setPosition:self.theHero.heroSprite.position];
}
Когда я запускаю демонстрацию, CCMotionStreak прекрасно рисует линию в первый раз
Я коснулся экрана, затем, когда спрайт останавливается, я пытался коснуться где-то еще
на экране и CCMotionStreak рисует вторую линию успешно, но я заметил
что линии CCMotionStreak немного «трясутся» (немного смещаются) во время перемещения спрайта, а затем «возвращаются в нормальное положение», когда спрайт перестает двигаться.
Надеюсь, кто-нибудь подскажет, спасибо :)