当我用断点检查我的触摸事件时,我注意到我用以下代码检测到的触摸节点没有.name。有帮助吗?我可以通过任何其他方式检查我触及的节点。我希望我的节点能够代表身体的各个部分,并且相信为每个身体部位创建物理身体可能会减慢应用程序的速度。
以下是我的代码。不是很复杂:
- (void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[super touchesBegan:touches withEvent:event];
UITouch *touch = [touches anyObject];
CGPoint positionInScene = [touch locationInNode:self];
SKSpriteNode *touchedNode = (SKSpriteNode *)[self nodeAtPoint:positionInScene];
//if touched node equal to one of these then ...
if([touchedNode.name isEqualToString:@"head.png"]){
[self alert:@"User has touched the head: " Message:@"Thank You."];
}
}
答案 0 :(得分:2)
SKNode的名称属性未通过调用SKSpriteNode initWithImageNamed设置:名称纯粹用于游戏逻辑。来自SKNode参考指南。
此属性用于标识游戏其他部分中的节点 逻辑。例如,您可以将此名称用作碰撞的一部分 测试。您还可以按名称搜索树中的节点。
如果您没有明确设置SKNode的名称属性,则不会设置它。