我已经检查了班级参考和其他几个S.O.帖子似乎无法以我需要的方式获取我的场景。从我到目前为止发现的,可以将SKScene.size
属性设置为某个CGSize
,视图将显示该大小的SKScene。但是,当我更改size
属性的值时,我的视觉效果在设备屏幕上不会改变一点。
我创建了一个SKShapeNode作为我的“世界”,并将其大小设置为7000单位乘以7000单位
world = SKShapeNode(rectOfSize: CGSizeMake(7000, 7000))
当我加载场景时,正如预期的那样,只显示世界的一小部分。
我知道这与屏幕的高度和宽度不成比例,但为简单起见,如何更改SKScene以在设备的屏幕上显示整个7000 x 7000世界?
答案 0 :(得分:1)
你不应该以这种方式改变场景的size
。创建7000 * 7000点的场景将使Retina iPad每秒渲染98万像素,每秒60次。哎哟。
只需创建一个新的SKnode sceneContents
,并将您的SKShapeNode作为子节点添加到此节点。当您希望“缩放”时,缩小sceneContents
节点(通过SKNode的xScale
和yScale
属性)。你可以使用SKAction,所以它很好而且流畅。
如果您可以转到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通过动画操作摄像机节点。