2014-01-10 8 views
1

게임에서 객체를 사용하여 병렬 스크롤하는 데 문제가 있습니다. 객체를 반복해야하는 행이지만 코드가 화면 밖으로 선을 스크롤 한 다음 다시 첫 번째 위치로 돌아가서 다시 스크롤합니다. :Spritekit 병렬 스크롤

- (void)bricksEdgeAnimation { 

    SKSpriteNode *bEdge = [[SKSpriteNode alloc]initWithImageNamed:@"edge.png"]; 
    bEdge.position = self.view.center; 
    bEdge.name = @"edge"; 
    [self addChild:bEdge]; 


} 

- (void)moveBg 
{ 
    [self enumerateChildNodesWithName:@"edge" usingBlock: ^(SKNode *node, BOOL *stop) 
    { 
     SKSpriteNode * bg = (SKSpriteNode *) node; 
     bg.position = CGPointMake(bg.position.x , bg.position.y - SPEED); 

     if (bg.position.y <= -bg.size.width) 
     { 
      bg.position = CGPointMake(bg.position.x , 
             bg.position.y + bg.size.width*2); 
     } 
    }]; 
} 

-(void)update:(CFTimeInterval)currentTime { 

    if (_lastUpdateTime) 
    { 
     _dt = currentTime - _lastUpdateTime; 
    } 
    else 
    { 
     _dt = 0; 
    } 

    _lastUpdateTime = currentTime; 

    [self moveBg]; 

} 

그것은 다음과 같이해야합니다 :

enter image description hereenter image description here

어떻게 서로 후이 선을 반복하려면 코드를 변경해야합니까?

답변

2

두 번째 "엣지"노드 추가

- (void)bricksEdgeAnimation { 

    SKSpriteNode *bEdge = [[SKSpriteNode alloc]initWithImageNamed:@"edge.png"]; 
    bEdge.position = self.view.center; 
    bEdge.name = @"edge"; 
    [self addChild:bEdge]; 

    //2nd node - note the name is the same 
    SKSpriteNode *bEdge1 = [[SKSpriteNode alloc]initWithImageNamed:@"edge.png"]; 
    bEdge1.position = CGPointMake(bEdge.position.x,bEdge.position.y+(bEdge.size.height)); 
    bEdge1.name = @"edge"; 
    [self addChild:bEdge1]; 
} 

//note I changed "width" to "height" 
- (void)moveBg 
{ 
    [self enumerateChildNodesWithName:@"edge" usingBlock: ^(SKNode *node, BOOL *stop) 
    { 
     SKSpriteNode * bg = (SKSpriteNode *) node; 
     bg.position = CGPointMake(bg.position.x , bg.position.y - SPEED); 

     if (bg.position.y <= -bg.size.width) 
     { 
      bg.position = CGPointMake(bg.position.x , 
             bg.position.y + bg.size.height*2); 
     } 
    }]; 
} 
+0

감사합니다, 잘 작동 –