如何在 SpriteKit 中制作水平滚动字符选择器

How to make a horizontal scrolling character chooser in SpriteKit

我一直在网上寻找执行此操作的最佳方法,但我无法弄清楚。我正在尝试制作一个像本例 here 中那样的水平滚动字符选择器,很难仅从图片中分辨出来,但您可以左右拖动手指,它会滚动到其他字符。

我只需要添加每个角色的图像,如果不是太难,那么可能是一个带有角色名称的标签,以及某种触摸手势识别器 select 一个字符,当你点击它时。

最初我想使用一个带有水平堆栈视图的Scrollview,它从左到右堆叠UIView。每个 UIView 内部是字符图像,其名称位于其下方的标签上。但我也想知道使用集合视图是否会更容易?

我似乎无法弄清楚如何将视图添加到侧滚动滚动视图并使点击手势识别它,如果有人对我如何做到这一点有任何意见,那就太棒了!

另外,使用集合视图或堆栈视图会更好吗?或者我不知道的另一种使用 SpriteKit 的方式?基本上任何指向我正确方向的输入都会很棒。非常感谢!

你应该避免在 SpriteKit 中使用 UIKit 类,因为它只是一个不同的野兽。此外,SpriteKit 使用自己的游戏时间,因此如果您的游戏因任何原因暂停,您不会希望依赖其他时间。

我通常构建自己的组件,这也是我应对这一挑战的方式。您应该创建一个自定义 SKNode 子类,比方说 Picker,您将其实例嵌入到 SKScene 中。在该组件中,您将独立于 SKScene 处理触摸,并在本地进行点击、拖放行为编程。 SKAction 动画将有助于在放置后将正确的“页面”选择捕捉到位。

因此,每当组件检测到点击或滑动选择(拖放结束)时,它都会向您的数据或 SKScene 父级发送信号,告知应该更新选择。

我确定周围可能有第三方组件,但如果您打算坚持使用 SpriteKit,我会投入时间进行此类开发。您通常需要深入了解事物的杂草,但这是乐趣的一部分:)。

如果需要,我很乐意进一步提供帮助。