我已经检查了类引用和其他几个 S.O.发布并且似乎无法按照我需要的方式获得我的场景。到目前为止,我发现可以将 SKScene.size
属性设置为某个 CGSize
, View 将显示该大小的 SKScene。但是,当我更改 size
属性的值时,我的设备屏幕上的视觉效果并没有发生任何变化。
我创建了一个 SKShapeNode 作为我的“世界”,并将其大小设置为 7000 单位 x 7000 单位
world = SKShapeNode(rectOfSize: CGSizeMake(7000, 7000))
当我加载场景时,正如预期的那样,只显示了世界的一小部分。
我知道这与屏幕的高度和宽度不成比例,但为了简单起见,如何更改 SKScene 以在设备屏幕上显示整个 7000 x 7000 的世界?
最佳答案
您不应该以这种方式改变场景的大小
。创建一个 7000*7000 点的场景将使 Retina iPad 以每秒 60 次的速度渲染 98 兆像素。哎哟。
缩放子节点
只需创建一个新的 SKnode sceneContents
并将您的 SKShapeNode 作为子节点添加到该节点。当您希望“缩放”时,缩小 sceneContents
节点(通过 SKNode 的 xScale
和 yScale
属性)。您可以为此使用 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;
嗯,我应该在某个时候学习 Swift。尽管如此,这个概念应该是清楚的。您可以使用 SKAction 通过动画操作相机节点。
关于swift - 如何更改 SKScene 的呈现 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32062888/