2014-10-06 2 views
0

xcode와 spritekit에서 빠른 프로그래밍 언어를 사용하고 있습니다. 내 배경 이미지를 영원히 스크롤하고 싶습니다. 지금까지이 코드를 가지고 있지만 시뮬레이터에서 실행할 때 한 번만 진행되고 회색 배경으로 돌아갑니다. 배경이 영원히 반복되도록하려면 어떻게해야합니까? 나는 그것이 내가 영원히 반복되기를 바랄 뿐인 배경을 이미 가지고있다.Swift에서 배경 이미지 반복하기

class GameScene: SKScene, SKPhysicsContactDelegate { 
var background = SKSpriteNode() 


     // Background 

    background = SKSpriteNode(imageNamed: "background") 
    background.position = CGPointMake(self.size.width/2, self.size.height/2) 
    addChild(background) 

    // Repeat Background Image Forever 

    moveForeverAction() 

    } 

     //loop background image infinitely 

    func moveForeverAction() { 
    let moveNode = SKAction.moveByX(0, y: background.size.height * 2.0 , duration: NSTimeInterval(0.01 * background.size.height * 2.0)) 
    let resetPosition = SKAction.moveByX(0, y: background.size.height * 2.0, duration: 0) 
    let moveNodeForever = SKAction.repeatActionForever(SKAction.sequence([moveNode, resetPosition])) 
    background.runAction(moveNodeForever) 
} 

답변

0

실행() 횟수는 3 번입니다. 예 :

(var i의 경우) : CGFloat = 0; i < 3; ++ 내가 {

background.position = CGPointMake(background.size.width/2, i * background.size.height) 
background.runAction(moveNodeForever) 

}

+0

이 코드를 프로젝트에 넣었으며 오류가있었습니다. 'NSInvalidArgumentException'으로 인해 앱 종료 중입니다. 이유 : '이미 부모가있는 SKNode를 추가하려고 시도했습니다. : name :'(null) '텍스처 : ['background '(2480 x 3507)] position : {1240, 3507} size : {2480, 3507} rotation : 0.00 ' – user3886268

+0

didMoveToView에 코드를 넣으면 작동하지 않기 때문에 정확합니까? – user3886268

1

같은 배경을 추가하는 때문입니다. 루프에 배경이되는 다른 선언문을 추가하십시오.

for var i:CGFloat=0; i < 3; ++i { 

**background = SKSpriteNode(imageNamed: "background")** 

background.position = CGPointMake(background.size.width/2, i * background.size.height) 
background.runAction(moveNodeForever) 

} 
+0

작동하지만 반복하지 않습니다. 처음 시뮬레이터에서 실행할 때 배경 이미지가 위에서 아래로 한 번 이동 한 다음 회색 배경으로 돌아갑니다. 그런 다음 1 초 후에 내 배경 이미지로 돌아가고 매 3 초마다 반복됩니다. 그것은 배경이 영원히 움직이고 있다는 인상을주지 않습니다. 나는 그것을 어떻게 할 수 있겠는가? – user3886268

+0

도움을 주셔서 감사합니다! – user3886268