2014-02-11 42 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]; 
} 
相關問題