0

我正在制作一款游戏(准确地说是 Advance Wars 的克隆版),并且我正在尝试让 Unit 移动。

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

- (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]]];
}

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

任何帮助将不胜感激!

4

0 回答 0