Swift 分割触摸移动到单个SKSpriteNode上

Swift 分割触摸移动到单个SKSpriteNode上,swift,sprite-kit,touch-event,Swift,Sprite Kit,Touch Event,使用SpriteKit,我创建了一个名为光剑的SKSpriteNode,使用TouchsMoved方法,我可以旋转SKSpriteNode,或者向左或向右平移它。有没有办法让它这样做一个或两个取决于我在哪里抓到的SKSpriteNode?(例如刀片或手柄)您可以通过 CGPoint location = [touch locationInNode:self]; 这将使您能够在触摸屏幕的位置添加自定义逻辑。例如: if(location.x > 300) { //Do this }

使用SpriteKit,我创建了一个名为光剑的SKSpriteNode,使用TouchsMoved方法,我可以旋转SKSpriteNode,或者向左或向右平移它。有没有办法让它这样做一个或两个取决于我在哪里抓到的SKSpriteNode?(例如刀片或手柄)

您可以通过

CGPoint location = [touch locationInNode:self];
这将使您能够在触摸屏幕的位置添加自定义逻辑。例如:

if(location.x > 300) {
   //Do this
} else {
   //Do that
}
您还可以将剑分成两部分,即两个节点,命名每个节点,并在两个节点上收听触摸事件

获取
touchesbeated
中的节点

SKNode *node = [self nodeAtPoint:location];
if([node.name isEqualToString@"Handle"]) {

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

}

但是刀锋和刀柄并不总是一个在另一个上面,因为触摸刀锋会旋转光剑,所以位置.x>300不一定会有帮助。将其分为两个对象也不是很实用,因为它们总是需要接触并正确定位。