ios - 我如何知道哪个 Sprite 被触摸了?

标签 ios objective-c sprite-kit

我有一些 Sprite 以随机顺序从屏幕底部出现。我想在滑动的方向上滑动 Sprite 。我得到了滑动算法。此外,每当在屏幕上触摸任何 Sprite 时,我都会收到一条 NSLog 消息。 NSLog 对触摸的任何对象都给出正确的响应。但是,我如何知道哪个 Sprite 已被刷过以编写将脉冲应用到该特定 Sprite 的代码?

我正在尝试以下代码:

               SKNode *sprite = [self nodeAtPoint:location];
               [ball.physicsBody applyImpulse:CGVectorMake(dx, dy) atPoint:location];
               [self addChild:sprite];

此外,

userInteractionEnabled = YES 对所有 Sprite

并且所有 Sprite 都在执行一个 Action (以防万一这就是为什么我不能在它们已经在运行 Action 时滑动它们的原因,在这种情况下我还应该使用什么来移动 Sprite ?)

对不起,如果这太愚蠢了,我是菜鸟

提前致谢!

最佳答案

您需要使用具有 name 属性的 Sprite 名称:

node.name = @"nodeName";



for(SKNode *node in [self nodesAtPoint:location])
{
    if([node.name isEqualToString:@"nodeName"])
        {
            // your custom code here
        }
}

我希望这就是您要找的,如果不是,我会随时为您提供帮助。

关于ios - 我如何知道哪个 Sprite 被触摸了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28300962/

相关文章:

ios - 为什么我打开应用程序时 swift 应用程序 IPA 会崩溃?

ios - 如何在隐藏或取消隐藏时为 UIView 设置动画

iphone - 调用 dismissViewControllerAnimated 时的 exc_bad_access

objective-c - SubstringWithRange NSString 内存泄漏

ios - 是什么导致我的 SKAction 计时器表现异常?

iphone - @""字符串类型并释放你不拥有的对象问题

objective-c - 调整 UIImage 的大小而不将其完全加载到内存中?

ios - 尝试将 PanoramaGL 添加到静态库时出现未知类型名称 'CGFloat'

ios - 在 SKEffectNode 中设置自定义 CIColorCube 过滤器

Swift SpriteKit 在 x 轴旋转节点