2014-02-11 45 views
0

我有一个方法为每个对象(SKSpriteNode),其中我设置它的图像,位置,名称等 这被添加到场景随机时间点。因为有很多对象,导致代码太多。随机添加一个SKSpriteNode到现场

它的工作原理,但我宁愿只有一种方法,在随机时间点向场景添加随机SKSpriteNode。我想我还需要另一个方法来定义所有SKSpriteNodes及其图像和其他设置。

我一直在试图制作一个所有对象的数组,并且有一个方法从数组中选择一个随机对象并将其添加到场景中,但是我无法让它工作。编辑: 对不起,不够具体。如果将对象添加到数组是将随机对象添加到场景的最佳方式,那么我的问题就是如何使用这些SKSpriteNodes创建数组。如果使用数组不是一路顺风,我该如何创建一个随机节点,并随时随地在场景中播放?

+0

有什么问题吗?你问如何编写一个函数来创建一个随机节点并将其添加到场景中的一个随机点上? –

+0

你究竟能不能工作?这个问题目前太广泛了,无法回答。 – WDUK

+0

从数组中获取随机spriteNode的问题? –

回答

1

我猜你有问题从数组中选择随机对象。 请详细说明您的问题,以便我们提供更好的答案。

要想从数组随机对象只是随机选择索引得到一个对象,像这样:

id randomObject = [array objectAtIndex:arc4random_uniform(array.count)]; 
0

在viewDidLoad中添加这对于中,或者想和更换您需要的值MAX_X和MAX_Y :

for (int i = 0; i < countObjects; i++) 
{ 
    CGPoint position = (CGPoint){(arc4random() % MAX_X) + 1.0f, (arc4random() % MAX_Y) + 1.0f}; 
    [self createNodeWithPosition:position]; 
} 

并添加以下方法:

- (void)createNodeWithPosition:(CGPoint)point 
{ 
    SKSpriteNode *box = [[SKSpriteNode alloc] initWithImageNamed:@"image.jpeg"]; 
    [box setPosition:point]; 
    [self addChild:box]; 
} 
相关问题