ios - 带有 SKSpriteNode 的 UITouch

标签 ios objective-c sprite-kit

所以我有一个 SKSpriteNode,我从屏幕顶部生成了一堆。我试图达到的效果是,当用户点击其中一个生成的节点时,只有该节点从 View 中消失。

我如何实现这一目标?

最佳答案

假设您已经对 SKScene 进行了子类化,那么您可以这样写:

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
    for(UITouch *touch in touches) {
        CGPoint location = [touch locationInNode:self];
        SKNode* node = [self nodeAtPoint:location];
        [node removeFromParent];
    }
}

显然这是非常幼稚的,但它应该让你开始。

touchesBegan 是触摸开始时的回调——它接收触摸的集合。 对于每个触摸,计算其在当前场景中的位置,找到该位置的节点,并将该节点从场景中移除。 ARC 应该负责回收节点使用的内存(假设您没有其他指向它的指针)。

关于ios - 带有 SKSpriteNode 的 UITouch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22264703/

相关文章:

ios - 以编程方式UIScrollView不起作用

ios - 如何在安装应用程序后不添加今天的小部件

iOS 9 Sprite Kit 自定义着色器似乎被忽略

ios - 按下时以编程方式移除 UIBarButtonItem 上的灯光?

ios - 如何像 Tinder 一样倒带最后一次滑动

ios - 以编程方式按 UIkeyboard 返回键

sprite-kit - 在 Sprite Kit 中停止节点旋转

ios - 在 SearchBar/TextField iOS Swift 中设置文本样式

objective-c - 如何将 printf 与 NSString 一起使用

swift - 尝试手动将 2d 触摸转换为 spritekit 坐标时出现问题