SKScene の TouchesBegan メソッドで、ユーザーがノードを選択したかどうかを確認しています。
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:location];
NSLog(@"node.name: %@",node.name);
if ([node.name isEqualToString:@"1"]){
bgColor = 1;
}
else if ([node.name isEqualToString:@"2"]){
bgColor = 2;
}
else if ([node.name isEqualToString:@"3"]){
bgColor = 3;
}
else if ([node.name isEqualToString:@"4"]){
bgColor = 4;
}
else if ([node.name isEqualToString:@"5"]){
bgColor = 5;
}
else if ([node.name isEqualToString:@"6"]){
bgColor = 6;
}
私のノードはすべて、次のようにメソッドで初期化されます。
SKShapeNode *bg = [SKShapeNode node];
[bg setPath:CGPathCreateWithRoundedRect(CGRectMake(self.size.width-50*2, 55, 50, 50), 6, 6, nil)];
bg.fillColor = [SKColor orangeColor];
bg.glowWidth = 0;
bg.name = @"6";
return bg;
もちろん、名前と色のプロパティを除いて、メソッドはすべて似ています。ノードは 2 つの行に分割され、1 つは y 120 で、もう 1 つは y 55 で、X は異なりますが、ユーザーが行 120 または 55 のいずれかのノードをクリックすると、ログに記録されるノード名は最大でもノードの名前になります。右。なぜそれが起こっているのですか?そして、私は何を間違っていますか?