如何在 Sprite Kit tvOS 中检测触摸

How to detect touches in Sprite Kit tvOS

我有一个 iOS Sprite Kit 应用程序,其中有几个节点在移动,您必须点击正确的节点才能获得分数。我用过这个方法:

- (void)touchesBegin:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    SKNode *targetNode = [self nodeAtPoint:[touch locationInNode:self]];
    // Codes to check whether the user tapped the correct nodes goes here.
}

现在我想将我的应用移植到 tvOS。一切正常,但触摸。但是你怎么能用它检测触摸呢?

在 tvOS 上没有 "touching" 的等效项,因为用户使用的是遥控器或游戏控制器。

您将需要设计和实施替代用户界面以提供视觉反馈并对遥控器(或游戏控制器)上的操作做出反应。

Apple 不建议使用 "cursor" 方法,因此您需要创造性地找到满足游戏要求的解决方案。鉴于遥控器触摸区域的拇指移动在垂直方向不如水平方向反应灵敏,因此用户很难控制光标。

如果你的游戏可以有"Focus"的概念,可能会有一些可行的解决方案。否则,移植到 tvOS 将是一个挑战。