2014-03-31 34 views
0

我是新來的精靈套件.. 我想在x軸上隨機移動一個精靈。 因爲我需要知道如何在動作完成時調用另一個方法/相同的方法以及其他隨機x值。 現在精靈停止在第一個隨機值,並且不會開始移動到下一個值。如何生成 - SKAction - 隨機運動

我嘗試這樣做:

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

感謝

回答

0

我也有類似的問題。我試圖沿x軸移動太空船。我基本上生成了一個隨機數,並用它來執行一個動作。然後在完成塊I中遞歸地再次調用該方法以重複該過程:

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