移动数组中的所有对象 - IOS 和 Sprite Kit
Move all objects in an array - IOS and Sprite Kit
这就是我想要实现的目标;
我正在尝试创建一个瓦片地图系统。因此,例如,当玩家按下向上按钮时,玩家会保持在中央,地图会向下移动,让玩家看起来像是在世界上行走(这是一个自上而下的游戏)。
我创建了一个 SpriteNode 数组和一个创建 64x64 tile 并将每个新对象添加到数组的函数。我正在尝试找出一种方法,可以将一个函数应用于所有图块。
因此,例如,当按下向上按钮时,所有图块开始向下移动。
我可以手动执行此操作:
SpriteNode *tile00;
SpriteNode *tile01;
SpriteNode *tile02;
...
然后在玩家移动时手动更改每个位置,但这将非常乏味(尤其是考虑到我打算创建相当大的地图)
我的问题:我可以将函数应用于多个 SpriteNode 吗?
你绝对应该创建函数:
- (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
}
如果您有 NSArray
个图块精灵,可以像这样对所有精灵应用一个动作
SKAction *moveAction = //move all tiles down, up, etc.;
for (SKSpriteNode *tile in self.tiles) /* an NSArray containing the tile sprites */
{
[tile runAction:moveAction];
}
这就是我想要实现的目标;
我正在尝试创建一个瓦片地图系统。因此,例如,当玩家按下向上按钮时,玩家会保持在中央,地图会向下移动,让玩家看起来像是在世界上行走(这是一个自上而下的游戏)。
我创建了一个 SpriteNode 数组和一个创建 64x64 tile 并将每个新对象添加到数组的函数。我正在尝试找出一种方法,可以将一个函数应用于所有图块。
因此,例如,当按下向上按钮时,所有图块开始向下移动。
我可以手动执行此操作:
SpriteNode *tile00;
SpriteNode *tile01;
SpriteNode *tile02;
...
然后在玩家移动时手动更改每个位置,但这将非常乏味(尤其是考虑到我打算创建相当大的地图)
我的问题:我可以将函数应用于多个 SpriteNode 吗?
你绝对应该创建函数:
- (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
}
如果您有 NSArray
个图块精灵,可以像这样对所有精灵应用一个动作
SKAction *moveAction = //move all tiles down, up, etc.;
for (SKSpriteNode *tile in self.tiles) /* an NSArray containing the tile sprites */
{
[tile runAction:moveAction];
}