0

我是精灵套件的新手。我想在 x 轴上随机移动一个精灵。为此,我需要知道如何在操作完成时使用另一个随机 x 值调用另一个方法/相同的方法。现在精灵停止在第一个随机值并且不开始移动到下一个。

我试过这个:

-(void) move:(CGSize)size {

  if (x1 == x2) {
     x2 = (arc4random() % 320);
     e = 0;
 }

 if (x2 > x1) {
     e = x2 - x1;
 }


 if (x1 > x2) {
     e = x1 -x2;
 }

 t = e/100;

 SKAction *action = [SKAction moveToX:x2 duration:e];
 [_spriteL runAction: [SKAction  repeatAction:action count:1]];

 x1 = x2;

 [self move:size];
  }

谢谢

4

1 回答 1

0

我有一个类似的问题。我试图沿 x 轴移动宇宙飞船。我基本上生成了一个随机数并用它运行了一个动作。然后在完成块中,我再次递归调用该方法以重复该过程:

- (void)autopilot {
    if (!self.dead) {
        CGVector delta = CGVectorMake((arc4random() % 125), 0);

        NSInteger multiplier = arc4random_uniform(2);
        multiplier = multiplier == 0 ? -1 : 1;
        delta.dx *= multiplier;

        CGPoint position = self.position;
        position.x = position.x <= 0.0 ? 0.0 : position.x;
        position.x = position.x >= self.size.width ? self.size.width : position.x;

        SKAction *move = [SKAction moveBy:delta duration:0.4];
        [self runAction:move completion:^{
            [self autopilot];
            [self shoot];
        }];
    }
}
于 2014-03-31T14:09:50.013 回答