你如何改变SKScene的呈现视图?

时间:2015-08-18 03:08:40

标签: swift sprite-kit

我已经检查了班级参考和其他几个S.O.帖子似乎无法以我需要的方式获取我的场景。从我到目前为止发现的,可以将SKScene.size属性设置为某个CGSize,视图将显示该大小的SKScene。但是,当我更改size属性的值时,我的视觉效果在设备屏幕上不会改变一点。

我创建了一个SKShapeNode作为我的“世界”,并将其大小设置为7000单位乘以7000单位

world = SKShapeNode(rectOfSize: CGSizeMake(7000, 7000))

当我加载场景时,正如预期的那样,只显示世界的一小部分。

我知道这与屏幕的高度和宽度不成比例,但为简单起见,如何更改SKScene以在设备的屏幕上显示整个7000 x 7000世界?

1 个答案:

答案 0 :(得分:1)

你不应该以这种方式改变场景的size。创建7000 * 7000点的场景将使Retina iPad每秒渲染98万像素,每秒60次。哎哟。

缩放子节点

只需创建一个新的SKnode sceneContents,并将您的SKShapeNode作为子节点添加到此节点。当您希望“缩放”时,缩小sceneContents节点(通过SKNode的xScaleyScale属性)。你可以使用SKAction,所以它很好而且流畅。

SKCameraNode

如果您可以转到iOS 9,我建议您查看SKCameraNode。目前仍处于测试阶段,但效果很好。 只需创建一个SKCameraNode,将其添加到场景中并将其设置为场景的相机。

SKCameraNode *camera = [SKCameraNode new];
[self.scene addChild:camera];
self.scene.camera = camera;
camera.xScale = 10.f;
camera.yScale = 10.f;
嗯,我应该在某个时候学习斯威夫特。然而,这个概念应该是清楚的。您可以使用SKAction通过动画操作摄像机节点。

相关问题