将SKNode移动到多个位置;停在每一个

时间:2014-03-24 00:55:59

标签: ios objective-c sprite-kit sknode

我正在制作一个游戏(准确地说是一个高级战争克隆),我正试图让该单位采取行动。

这是我目前正在使用的代码。

- (void)constructPathAndStartAnimationFromStep:(SKNode *)tile {
    [movementPath removeAllObjects];
    do {
        if (tile.parentTile != nil) {
            [movementPath insertObject:tile atIndex:0];
        }
        tile = tile.parentTile;
    } while (tile != nil);
    [self popStepAndAnimate];
}

- (void)popStepAndAnimate {
    if ([movementPath count] == 0) {
        selectedNode.isMoving = NO;
        [self unMarkPossibleMovement];
        return;
    }
    SKNode *s = [movementPath objectAtIndex:0];
    SKAction *moveAction = [SKAction moveTo:s.position duration:0.4];
    SKAction *moveCallback = [SKAction performSelector:@selector(popStepAndAnimate) onTarget:self];
    [movementPath removeObjectAtIndex:0];
    [selectedNode runAction:[SKAction sequence:@[moveAction, moveCallback]]];
}

问题在于该单位甚至不会移动。或者,如果他们这样做,他们应该只有一半的距离。在下一个被调用之前,他们也没有完成动作的动作。

非常感谢任何帮助!

0 个答案:

没有答案