SKAction移动整个屏幕

时间:2014-02-24 20:41:09

标签: xcode sprite-kit skaction sknode

我正在使用一个数组跟踪我游戏中的所有图块,并在触摸时调用此函数 - (void)moveTilesDown,它应该遍历所有图块并找到有空格的地方,然后将瓷砖上方的瓷砖向下移动一个位置。在第一次触摸时,一切正常,它会向下移动相应的图块,但在连续触摸时,它会向下移动整个屏幕,包括2个与阵列无关的SKLabelNodes,不应以任何方式受到影响。我不知道我是以某种方式向下移动整个屏幕还是单独移动每个节点。如果问题有些不清楚,我道歉,但我完全不知道发生了什么,因此真的不知道如何提出问题。任何帮助都会非常感激。

这是我的moveTilesDown代码:

-(void)moveTilesDown {

int i = 0;
for (i = 0; i < 162; i++) {
    if (i % 9 == 0) {
        NSLog(@"skipping tile %d b/c it's on bottom", i);
    }else {

        if ([[idArray objectAtIndex:(i - 1)] isEqualToString:@"none"] && ![[idArray objectAtIndex:i] isEqualToString:@"none"]) {

            [idArray replaceObjectAtIndex:(i - 1) withObject:[idArray objectAtIndex:i]];
            [idArray replaceObjectAtIndex:i withObject:[NSString stringWithFormat:@"none"]];
            tileWasMoved = YES;

            CGPoint locationOfIndex = CGPointMake((i % 9) * 30, (i / 9) * 30);
            SKNode *movingNode = [self nodeAtPoint:locationOfIndex];
            SKAction *moveNodeDown = [SKAction moveByX:-kTileSize.width y:0.0 duration:1.0];
            [movingNode runAction: moveNodeDown];
        }
    }
}
}

0 个答案:

没有答案