小编jus*_*ike的帖子

根据触摸位置拖动SKSpriteNode

我试图在y轴上拖动一个精灵,但是根据触点在节点上的开始位置,使精灵"粘住"到用户手指.精灵当前正在拖动,但似乎是将精灵的锚点捕捉到节点内的触摸位置.

我假设它与通过这样做获取节点内的位置有关,[touch locationInNode:selectedNode];但我不确定从那里去哪里.

这是我目前的代码.

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

    for (UITouch *touch in touches) {
        CGPoint location  = [touch locationInNode:self];
        SKNode *node = [self nodeAtPoint:location];
        CGPoint newPosition = CGPointMake(node.position.x, location.y);

        if ([node.name isEqualToString:self.selectedNode] ) {

            if (newPosition.y > 230) {
                newPosition.y = 230;
            }
            node.position = newPosition;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c ios sprite-kit

6
推荐指数
1
解决办法
1853
查看次数

标签 统计

ios ×1

objective-c ×1

sprite-kit ×1