所以我有一个 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/