2015-08-21 62 views
0

所以這裏是我想要實現的;移動數組中的所有對象 - IOS和Sprite Kit

我想創建一個瓷磚地圖系統。因此,當玩家按下向上按鈕時,玩家保持中心位置,並且地圖向下移動以呈現玩家走向世界的樣子(其是自上而下的遊戲)。

我創建了一個SpriteNode的數組和一個創建64x64拼貼的函數,並將每個新對象添加到數組中。我試圖找出一種方法,我可以將一個函數應用於所有圖塊。

因此,例如,當向上按鈕被按下時,所有瓷磚開始向下移動。

我可以手動執行此操作:

SpriteNode *tile00; 
SpriteNode *tile01; 
SpriteNode *tile02; 
... 

,然後更改每一個手動當玩家移動的位置,但是這將是非常乏味的(特別是考慮到我計劃創造相當大圖)

我的問題:我可以將函數應用於多個SpriteNodes嗎?

回答

1

你一定要創建功能:

- (void) moveUp { 
// Loop through array of nodes and move them down 
} 
- (void) moveDown { 
// Loop through array of nodes and move them up 
} 
- (void) moveRight { 
// Loop through array of nodes and move them left 
} 
- (void) moveLeft { 
// Loop through array of nodes and move them right 
} 

您可以通過節點循環,如果你創建節點的NSArray,並做到這一點:

for (SKSpriteNode *n in NodeArray){ // NodeArray is you NSArray 
// Do something to n 
} 
1

如果你有瓷磚精靈的NSArray,對他們全部採取行動可以這樣完成

SKAction *moveAction = //move all tiles down, up, etc.; 
for (SKSpriteNode *tile in self.tiles) /* an NSArray containing the tile sprites */ 
{ 
    [tile runAction:moveAction]; 
}