我正在寻找适当的SpriteKit方法来处理可滚动的世界.请考虑以下图像: 在这个人为的例子中,世界边界是虚线,蓝点可以在这些边界内的任何地方移动.然而,在任何给定点,该世界的一部分可
在这个人为的例子中,世界边界是虚线,蓝点可以在这些边界内的任何地方移动.然而,在任何给定点,该世界的一部分可以在屏幕外存在,如图像所示.我想知道如何将蓝点移动到“世界”的任何地方,同时保持相机静止在蓝点上.
This is Adventure, a sprite kit game by apple to demonstrate the point I made below. Read through the docs, they explain everything这是我目前无法找到的一个很好的答案.基本的想法是这样的:
>在场景中添加“世界”节点.您可以给它一个宽度/高度大于屏幕尺寸.
>当你’移动’角色(或蓝点)时,你实际上移动了你的世界节点,但方向相反,这给人的印象是你正在移动.
这样屏幕总是以蓝点为中心,而你周围的世界会移动
下面是我刚刚进行实验的一个例子:
override func didMoveToView(view: SKView) { self.anchorPoint = CGPointMake(0.5, 0.5) //self.size = CGSizeMake(600, 600) // Add world world = SKShapeNode(rectOfSize: CGSize(width: 500, height: 500)) world.fillColor = SKColor.whiteColor() world.position = CGPoint(x: size.width * 0.5, y: size.height * 0.5) world.physicsBody?.usesPreciseCollisionDetection = true self.addChild(world) } override func update(currentTime: CFTimeInterval) { world.position.x = -player.position.x world.position.y = -player.position.y }