我一直在嘗試SKCameraNode,但是我找不到任何關於用它創建視差效果的東西。SpriteKit - SKCameraNode視差效果?
比方說,我添加到上面的代碼,並在我的baseNode
下面添加behindNode
。然後我製作相機的動畫。
let behindNode = SKNode()
addChild(behindNode)
let blueSquare = SKSpriteNode(color: SKColor.blueColor(), size: CGSize(width: 80, height: 80))
blueSquare.position = CGPoint(x: size.width/2+40, y: size.height/2+40)
behindNode.addChild(blueSquare)
let baseNode = SKNode()
addChild(baseNode)
let redSquare = SKSpriteNode(color: SKColor.redColor(), size: CGSize(width: 80, height: 80))
redSquare.position = CGPoint(x: size.width/2, y: size.height/2)
baseNode.addChild(redSquare)
let cameraNode = SKCameraNode()
camera = cameraNode
addChild(camera!)
camera!.position = redSquare.position
cameraNode.runAction(SKAction.sequence([
SKAction.waitForDuration(1),
SKAction.moveBy(CGVector(dx: 100, dy: 100), duration: 3),
SKAction.moveBy(CGVector(dx: -100, dy: 100), duration: 1),
SKAction.moveBy(CGVector(dx: 100, dy: -100), duration: 1)
]))
我需要的藍色正方形,以相對於紅色方塊以較慢的速度移動時,相機而動。我會期待cameranode有一個相對位置詞典之類的,但它不..
感謝所有的代碼。我有點希望有一個更好的方式來做到這一點。 skcameranode不是真的爲我們節省了很多代碼。不妨沿着老式的方式滑動一堆sknode – hamobi
這個想法是讓你的遊戲對象與攝像機保持在同一水平,並且所有的背景視差對象都使用上面的代碼。 – jmcmahon443
如何對z順序進行排序,使背景對象永遠不會出現在前景對象前面? – Confused