2014-10-06 28 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

相关问题