首页 > 解决方案 > 如何在 SpriteKit 中创建垂直可滚动区域(逐步)?

问题描述

语境

我正在开发一个SpriteKit游戏,我想添加一个可滚动的区域来显示某些项目。(例如,每个项目可以由图像和标签组成)。下面是一张图片,它准确地描述了我想要完成的事情:您选择“篮球图标”,然后可以滚动和选择潜在球的列表(图片后有更多详细信息)

在此处输入图像描述

考虑到这一点,我已经看到了几个实现该目标的建议,但大多数帖子都已过时,而且大多数时候还不够详细,无法有人执行。一些建议包括:

  1. 将 UIKit 元素,如 UIScrollView、UICollectionView 或 UITableView 嵌入到您的 SKScene中(在这种情况下,我想我上面提到的项目 - 图像和标签 - 而不是 Skpritekit 元素需要自定义单元格)

  2. 将 UIKit 元素(与上面相同)嵌入到位于 Scene 顶部的 SKNode 叠加层

  3. 使用 SKCameraNode 来“模拟”一个可滚动的行为,它只跟随触摸并沿着更大​​的场景移动(例如,帧大小的 2 倍 - 垂直)以这种方式显示其他 SpriteKit 元素

也就是说,我正在寻找基于以下内容的分步建议:

(a)自己的经验(例如提供代码片段作为答案和/或类似的 GitHub 示例)

(b)可用的公共教程(youtube / 文章)

(c)您认为合适的其他格式

最终,这篇文章和答案可以为所有其他寻找类似实现的人奠定良好的基础。

提前感谢您的时间和精力。干杯

标签: swiftscrollsprite-kituikit

解决方案


根据我作为游戏开发者的经验,我推荐使用SwiftySKScrollView

SwiftySKScrollView 是一个帮助类,用于将 UIScrollView 添加到 SpriteKit 场景。助手将自动将按钮按下转发到相关的 SKScene 和节点子类。易于使用和实施。

另外,从经验来看,在这种游戏上使用 SKCamera 也不值得。尝试重现滚动区域及其所有效果将非常困难且耗时。最后,添加 UIScrollView 的辅助类 SwiftySKScrollView 看起来会更加流畅自然。


推荐阅读