我正在制作一个游戏(准确地说是一个高级战争克隆),我正试图让该单位采取行动。
这是我目前正在使用的代码。
- (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]]];
}
问题在于该单位甚至不会移动。或者,如果他们这样做,他们应该只有一半的距离。在下一个被调用之前,他们也没有完成动作的动作。
非常感谢任何帮助!