1
是否有SKSpriteNode
的屬性可讓您手動設置其可觸摸區域?設置SKSpriteNode的可觸摸區域
我有一個PNG紋理的精靈,它似乎只能檢測到PNG的不透明部分的觸摸。所以大空白畫布內的一個小圓圈實際上有一個很小的可觸摸區域。
是否有SKSpriteNode
的屬性可讓您手動設置其可觸摸區域?設置SKSpriteNode的可觸摸區域
我有一個PNG紋理的精靈,它似乎只能檢測到PNG的不透明部分的觸摸。所以大空白畫布內的一個小圓圈實際上有一個很小的可觸摸區域。
創建一個您希望可觸摸區域大小的SKNode。添加紋理精靈作爲新SKNode的子節點。檢查是否觸摸了新的SKNode,而不是觸摸紋理的精靈。
-(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];
}
我在設置SKNode的幀大小時遇到問題 - 當我修改該屬性時,它內部的精靈將消失。但這似乎是正確的路要走。 – 2014-10-30 19:36:46
在添加紋理spriteNode之前設置SKNode及其其他屬性的大小 – meisenman 2014-10-30 19:51:06