У меня есть этот код, который я использовал раньше, но теперь, когда я переклассифицировал свой спрайт, мне нужно его адаптировать. Вот оно:
-(void)moveRandom:(CCSprite*)mos
{
CGPoint randomPoint = ccp(arc4random()%480, arc4random()%320);
NSLog(@"%@", NSStringFromCGPoint(randomPoint));
CGPoint start = mos.position;
CGPoint end = randomPoint;
float distance = ccpDistance(start, end);
float duration = distance/450;
[mos runAction:
[CCSequence actions:
[CCMoveTo actionWithDuration:duration position: randomPoint],
[CCCallBlock actionWithBlock:^{
[self performSelector:@selector(moveRandom:) withObject:mos afterDelay:0.5];
}],
nil]
];
}
Что он делает, так это выбирает случайную точку на экране, затем делает так, чтобы спрайт перемещался с постоянной скоростью между двумя точками, затем перемещал спрайт и повторно вызывал метод.
EDIT:
Причина, по которой я хочу это сделать, заключается в том, что я буду помещать экземпляры этого спрайта в слой моего спрайта, и все они будут использовать этот метод.
Должен ли я не включать это в мой подкласс CCSprite, а больше как слой моего спрайта?