如何使用 Swift 和 SpriteKit 使视图可滚动以查看带有精灵的完整场景?
How to make a view scrollable to view the full scene with sprites with Swift and SpriteKit?
我有一个现在填充视图的场景:
scene.size = skView.bounds.size
scene.scaleMode = .AspectFill
我用精灵从下到上填充场景,在我的上方,它们需要进一步向上 - 在视图之外。
所以我的场景应该与视图具有相同的宽度,但高度应该...固定在 3000 左右。
Sprite 将填满屏幕,我想向上滚动以查看整个场景。
你能给我一个如何"construct"的建议吗?
您应该创建一个节点作为项目中场景的世界,并简单地将 y 坐标向下移动,以产生能够看到更上方场景的错觉。
一些示例代码,你可以看看here
这是一张快速路线图:
- 在您的游戏场景中 "didMoveToView" 您想要创建一个 "world" 节点。通过在 class 之外声明它来确保 "world" 节点是一个全局变量。使 "world" 节点大小与所需的完整大小一样大(例如,3000)。
- 还在 "didMoveToView" 添加一个捏合手势,最终允许您使用 UIPinchGestureRecognizer"zoom" 那个世界
- 创建处理夹点的函数。最终,"recognizer.scale" 应该影响 "world.scale"
- 您的所有精灵都应添加到 "world" 节点
我有一个现在填充视图的场景:
scene.size = skView.bounds.size
scene.scaleMode = .AspectFill
我用精灵从下到上填充场景,在我的上方,它们需要进一步向上 - 在视图之外。
所以我的场景应该与视图具有相同的宽度,但高度应该...固定在 3000 左右。
Sprite 将填满屏幕,我想向上滚动以查看整个场景。
你能给我一个如何"construct"的建议吗?
您应该创建一个节点作为项目中场景的世界,并简单地将 y 坐标向下移动,以产生能够看到更上方场景的错觉。
一些示例代码,你可以看看here
这是一张快速路线图:
- 在您的游戏场景中 "didMoveToView" 您想要创建一个 "world" 节点。通过在 class 之外声明它来确保 "world" 节点是一个全局变量。使 "world" 节点大小与所需的完整大小一样大(例如,3000)。
- 还在 "didMoveToView" 添加一个捏合手势,最终允许您使用 UIPinchGestureRecognizer"zoom" 那个世界
- 创建处理夹点的函数。最终,"recognizer.scale" 应该影响 "world.scale"
- 您的所有精灵都应添加到 "world" 节点