随机选择两个动作并在每一定时间内重复动作

时间:2014-10-06 22:44:00

标签: ios objective-c iphone ios7 sprite-kit

我在让我的应用程序在两个动作之间随机选择然后每半秒重复一次动作时遇到了很多麻烦。

这是我的代码:

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

我希望我的应用选择将精灵设置为(257,510)或(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];

如果有人可以提供帮助那就太棒了!

另外,我真的不明白这一点,但我仍然想弄明白。有没有办法刷新动作(以便我的应用程序将在两个点之间随机选择并让它们移动到新位置)甚至在之前的动作尚未完成之前,使其在另一个之前发送新的精灵甚至离开了屏幕?谢谢!

1 个答案:

答案 0 :(得分:2)

要获得随机,均匀分布,您可以使用arc4random_uniform()(see e.g. here)

硬币翻转看起来像这样:

BOOL heads = arc4random_uniform(100) < 50;

您可能知道下一步该做什么,例如:

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