명령시 SKNode를 화면 위로 이동하려고합니다. 다음과 같은 SKAction 체인을 설정하여 1) 노드가 위로 움직이고 화면을 벗어난 다음 2) 노드가 시작 지점으로 이동 한 다음 3) 이동이 시작됩니다. 나는이 시도하고 구현하려면 다음 코드를 사용했습니다 :iOS SpriteKit SKAction 완료 통화가 작동하지 않거나 이상한 결과가 발생합니다.
SKAction *moveUp = [SKAction moveTo: shipIntroSpot1 duration:3.0];
SKAction *moveDown = [SKAction moveTo:shipSpot1 duration:ship1MovementSpeed];
[self enumerateChildNodesWithName:@"ship1" usingBlock:^(SKNode *node, BOOL *stop) {
NSLog(@"RUNNING MOVE UP");
[node runAction: moveUp];
[node runAction:moveUp completion:^{
NSLog(@"RUNNING MOVE DOWN");
[node setHidden: NO];
[node runAction: moveDown];
}];
[node runAction:moveDown completion:^{
NSLog(@"STARTING MOVEMENT");
}];
그러나, SKActions가 올바른 순서로 발사 할 수 표시되지 않습니다. 한 단계가 완료되면 다음 단계가 시작되도록 코드를 사용했습니다. 그러나 SKAction은 다음 SKAction이 작동하기 전에 노드를 충분히 빠르게 이동시키지 못합니다. 완료 통화를 사용하면 이전 작업이 완료 될 때까지 다음 작업이 시작되지 않는다는 인상을 받고있었습니다. 그것은 여기에있는 것처럼 보이지 않습니다. 또한 1 단계 (MOVING UP) 동안 오래 지속되면 2 단계 (건너 뛰기)로 건너 뛰고 3 단계 (시작 동작) 실행을 시작합니다. 나는 이것이 어떻게 가능한지 전혀 모른다. 누군가가 서로 다른 행동을 적절하게 함께 연결하는 방법을 이해하는 데있어서 실수를 지적 할 수 있다면 감사하게 생각합니다.
(나는 통해 "숨기기 취소"노드 반쯤. 내가 너무 그것에 대해 틀렸다하지 않는 한 내가 순서대로 그것을 넣을 수 있다고 생각하지 않습니다하기 때문에 나는 SKAction 순서를하지 않았다.)
동작 시퀀스를 다른 동작 (순서대로) 후에 실행하려는 경우 동작 시퀀스를 찾습니다. – LearnCocos2D