是否有SKSpriteNode
属性允许您手动设置其可触摸区域?
我有一个用PNG纹理的精灵,它似乎只能检测到PNG不透明部分的触摸。因此,大型空白画布内的一个小圆圈实际上有一个很小的可触摸区域。
答案 0 :(得分:1)
创建一个您想要可触摸区域的大小的SKNode。添加纹理精灵作为新SKNode的子项。检查是否触摸了新的SKNode,而不是触摸了纹理精灵。
答案 1 :(得分:0)
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:location];
if ([node.name isEqualToString:@"childName"])
{
NSLog(@"You touched to child of sprite");
}
}
-(void)sprite
{
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"spriteImageName"];
[self addChild:sprite];
SKSpriteNode *spriteChild = [SKSpriteNode spriteNodeWithImageNamed:@"childImageName"];
spriteChild.name = @"childName";
[sprite addChild:spriteChild];
}