Заставить спрайт перемещаться случайным образом по экрану - PullRequest
1 голос
/ 10 февраля 2012

Я делаю 2D-игру, в которой мне нужны экземпляры спрайта, чтобы беспорядочно летать по экрану. Они будут появляться случайно за пределами экрана iPhone, а затем перемещаться по экрану. Когда они коснутся краев, они появятся на другой стороне. Все, что мне нужно знать, это как заставить спрайт перемещаться случайным образом.

1 Ответ

1 голос
/ 10 февраля 2012

Добавьте этот метод к вашему классу слоев - он принимает спрайт и затем перемещает его случайным образом по экрану навсегда:

-(void)moveRandom:(CCSprite*)s
{
    CGPoint randomPoint = ccp(arc4random()%480, arc4random()%320);
    NSLog(@"%@", NSStringFromCGPoint(randomPoint));

    [s runAction:
     [CCSequence actions:
      [CCMoveTo actionWithDuration:arc4random()%5+1 position: randomPoint],
      [CCCallBlock actionWithBlock:^{
         [self performSelector:@selector(moveRandom:) withObject:s afterDelay:0.5];
       }],
      nil]
     ];
}

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

Чтобы добавить спрайт на экран и начать процесс, поместите это (вероятно) в метод инициализации сцены или везде, где вы делаете инициализацию сцены:

CCSprite* s = [CCSprite spriteWithFile:@"yourImage.png"];
[self addChild: s];
[self moveRandom:s];
...