拆分 touchesMoved 跨单个 SKSpriteNode

Splitting touchesMoved across a single SKSpriteNode

我使用 SpriteKit 创建了一个名为 lightSaber 的 SKSpriteNode,并使用 touchesMoved 方法,我能够旋转 SKSpriteNode 或向左或向右平移它。有没有办法让它根据我抓取 SKSpriteNode 的位置执行一个或两个? (例如 blade 或句柄)

您可以通过

获取touchEvent的位置
CGPoint location = [touch locationInNode:self];

这将使您能够向触摸屏幕的位置添加自定义逻辑。例如:

if(location.x > 300) {
   //Do this
} else {
   //Do that
}

你也可以将剑分成两部分,即两个节点并命名每个节点并在两个节点上监听触摸事件。

通过

获取touchesBegan内的节点
SKNode *node = [self nodeAtPoint:location];
if([node.name isEqualToString@"Handle"]) {

} else if ([node.name isEqualToString@"Blade"]) {

}