0

に始まったときに、背景を繰り返し、私は背景を任意のタッチが発生する前にまだあること及び任意のタッチがタッチが私が今までSpriteKitベースを使用するための背景を繰り返し、簡単なコードを持ってSpritkit

*// animate the background* 

    let background = SKTexture(imageNamed: "bg.png") 

    let moveTheBackground = SKAction.move(by: CGVector(dx: - 
    background.size().width, dy:0), duration: 10) 

    let backgroundToOriginalPosition = SKAction.move(by: CGVector(dx: 
    background.size().width, dy: 0), duration: 0) 

    let animateTheBackground = 
    SKAction.repeatForever(SKAction.sequence([moveTheBackground, 
    backgroundToOriginalPosition])) 


    *// loop the background animation* 

    var i:CGFloat = 0 
    while i < 2 { 

     bg = SKSpriteNode(texture: background) 
     bg.position = CGPoint(x: background.size().width * i, y: self.frame.midY) 
     bg.size.height = self.frame.height 
     bg.zPosition = -1 
     bg.run(animateTheBackground) 
     self.addChild(bg) 

     i += 1 
    } 
を始めたときにのみ、アニメーションやスクロールを開始します

私はSpriteKitベース、 でtouchesbeganは、任意のヘルプは大幅に任意のゲームプログラミングで

答えて

0

を理解されるだろうというとき、水平方向のスクロールを表示するための理想的な方法は、2背景画像を使用して、水平方向の内の1つの後に1を追加している、このコードが発生します。両方向に移動し、background1が左端で0を横切ると(右から左へのスクロールで)、その位置が幅xに変更されます。両方のバックグラウンドの位置を増やすには、メインゲームループを使用します。あなたの場合、allowScrollという名前のフラグを1つ使用し、touchesBeginをtrueに設定します。 allowScrollがtrueに設定されている場合、ゲームループ内の背景画像の位置が増減します。

+0

に対応して移動するために得るためにあなたのtouchesMoved関数の内部で移動するためのコードを入れて iは上記のコードを持って言うことができます、非常に多くの達人いただきありがとうございます、そのシンプルは、そのすべて を行ってワーキング私はtouchesbeganメソッドで実行したいので、誰かが画面に触れると背景が右から左にアニメーション化を開始する タッチが起こる前に背景が動かずに動くはずで、画面がタッチすると背景が動くはずです どうすればいいですかそれは起こる?ありがとう – mue

+0

@mue、あなたの質問にあなた自身の質問に答えています。あなたのタッチに実行コードを入れ始めました – Knight0fDragon

+0

Knight0fDragon、 私はすでにtouchesBeganメソッドにコードを入れていましたが、didMove(view:SKView)関数では利用できなくなったので、背景のdisapeareとして利用できます。ゲームが読み込まれ、画面にタッチするとバックグラウンドが無限に左に移動する – mue

0

背景がタッチ

関連する問題