2014-10-06 29 views
0

我在使應用程序在兩個動作之間隨機選擇然後每半秒重複一次動作時遇到了很多麻煩。在兩個動作之間隨機選擇,每隔一定時間重複一次

這裏是我的代碼:

//Setting the sprite to a position on the screen (it happens to be right where the screen cuts off) 
    SKSpriteNode *lightnut = [SKSpriteNode spriteNodeWithImageNamed:@"lightnut.png"]; 
    lightnut.position = CGPointMake(257,510); 
    [self addChild: lightnut]; 

    //The action that makes the sprite move to the new part of the screen 
    SKAction *moveNodeUp = [SKAction moveByX:0.0 y:-600.0 duration:2.0]; 
    [lightnut runAction: moveNodeUp]; 

我想我的應用程序要麼選擇設置爲(257510)或(150,510)的精靈。

例如:

SKSpriteNode *lightnut = [SKSpriteNode spriteNodeWithImageNamed:@"lightnut.png"]; 
    lightnut.position = CGPointMake(257,510); 
    OR 
    lightnut.position2 = CGPointMake (150,510); 
    [self addChild: lightnut]; 

    SKAction *moveNodeUp = [SKAction moveByX:0.0 y:-600.0 duration:2.0]; 
    [lightnut runAction: moveNodeUp]; 

如果任何人都可以用,幫助將是巨大的!

另外,我不太明白這一點,但我仍然在試圖弄明白。有沒有辦法刷新動作(以便我的應用程序可以在兩點之間隨機選擇並讓它們移動到新的位置),即使之前的動作尚未完成,也會讓它在另一個動作之前發送一個新的動畫甚至離開了屏幕?謝謝!

回答

2

要得到隨機的,均勻分佈的,可以使用arc4random_uniform()(see e.g. here)

拋硬幣是這樣的:

BOOL heads = arc4random_uniform(100) < 50; 

你可能知道下一步該怎麼做,如:

lightnut.position = (heads)? CGPointMake(257,510) : CGPointMake(150,510); 
+0

感謝您的解釋!我想我瞭解了這一點,但我不明白如何將我的代碼和這些代碼放在一起。感謝您讓它更輕鬆! – Ryandev 2014-10-06 23:24:03

相關問題