Ios 这种阻力效应被称为什么,以及形成这种阻力效应的必要措施?

Ios 这种阻力效应被称为什么,以及形成这种阻力效应的必要措施?,ios,objective-c,sprite-kit,touchesmoved,skspritenode,Ios,Objective C,Sprite Kit,Touchesmoved,Skspritenode,嗯,我现在有点困在寻找资源来执行这个拖动效果上。 其效果是: 触摸一个电极并按住 然后拖动到要移动SKSpriteNode的位置 最后,释放手势,节点将以直线运动的方式移动到您希望以延迟速度移动的位置,以便在释放手指时可以看到它移动。 我不知道拖动效果的名称,但它很容易实现。下面是一个非常基本的实现,可以进行增强 首先,在场景中声明两个实例变量 SKNode *selectedNode; UITouch *currentTouch; 然后,您可以使用触摸代理实现所需的功能 -(void)tou

嗯,我现在有点困在寻找资源来执行这个拖动效果上。 其效果是:

触摸一个电极并按住 然后拖动到要移动SKSpriteNode的位置 最后,释放手势,节点将以直线运动的方式移动到您希望以延迟速度移动的位置,以便在释放手指时可以看到它移动。
我不知道拖动效果的名称,但它很容易实现。下面是一个非常基本的实现,可以进行增强

首先,在场景中声明两个实例变量

SKNode *selectedNode;
UITouch *currentTouch;
然后,您可以使用触摸代理实现所需的功能

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];

    CGPoint touchPoint = [touch locationInNode:self];

    SKNode *node = [self nodeAtPoint:touchPoint];

    if ([node.name isEqualToString:@"whatevername"])
    {
        selectedNode = node;
        currentTouch = touch;
    }
}



-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];

    if ([touch isEqual:currentTouch])
    {
        CGPoint point = [touch locationInNode:self];
        [selectedNode runAction:[SKAction moveTo:point duration:1.0]];
        //Also can calculate time based on distance to make the movement uniform.

        selectedNode = nil;
        currentTouch = nil;
    }
}

-(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];

    if ([touch isEqual:currentTouch])
    {
        selectedNode = nil;
        currentTouch = nil;
    }

}

看一看这篇文章--它可能有一些你需要的额外信息我可能不正确,但你可以使用UILongPress手势激活UIPanGesture,它可以帮助你移动对象这可能会有帮助。。阿马尔,这并不是我想要的,更多的是把一条看不见的线拖到一个位置,然后释放,然后物体就到了你想要去的地方。但是谢谢你的建议。它看起来像是要去一个随机的位置,你不能把它拖到你最后触摸的地方。有点像这样的[链接],但是只有一个精灵图像,另一个堆在上面,上面没有图像,所以当你拖动它并触摸结束时,它会去到你最后触摸的位置。释放后,触摸事件。如果这是有意义的。从视频中,您似乎想让底层精灵跟随被拖动的精灵。是的,但更多的是拖动到标记点,释放,然后使用您拥有的延迟移动代码移动到目标。