我一直在尝试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