使精灵在屏幕上随机移动

时间:2012-02-10 09:46:25

标签: objective-c ios xcode xcode4 sprite

我正在进行2D游戏,我需要精灵的实例在屏幕上随机飞行。它们将在iPhone屏幕的边界之外随机产生,然后在屏幕内移动。当它们碰到边缘时,它们会出现在另一侧。我需要知道的是如何让精灵随机移动。

1 个答案:

答案 0 :(得分:1)

将此方法添加到图层类中 - 它会接收一个精灵,然后在屏幕上随机移动它:

-(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];