大家好一点卡在这一个, 我希望通过名称列举通过它们添加到屏幕上的精灵(我第一次尝试在枚举),所以我很确定它将是简单的,我错过了 - 代码低于 任何帮助表示赞赏。使用枚举更改精灵的颜色
添加精灵层:
for(int keyCount = 0; keyCount < ammountOfSprites; ++keyCount)
//other code here....
Star01 = [SKSpriteNode spriteNodeWithImageNamed:@"Actions-rating-icon.png"];
Star01.position = CGPointMake(-30,StarHeight);
[MyLabel addChild:Star01];
**Star01.name** = [NSString stringWithFormat:@"Star01_%@",[NSString stringWithFormat:@"%@",dataFromArray]];
NSLog(@"%@", Star01.name);
///名称登录为:
Star01_Owl
Star02_Owl
Star03_Owl
触摸内部开始
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
for (UITouch *touch in touches) {
CGPoint touchLocation = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:touchLocation];
//colour to add to the
UIColor *blackColour = [UIColor greenColor];
//function takes sprite.names and enumerates them
//name match those logged however dont work.
[self changeStarScorestar01:@"Star01_Owl" star02:@"Star02_Owl" star03:@"Star03_Owl" colour:blackColour];
后来......
//function takes sprite.names and enumerates them
-(void)changeStarScorestar01:(NSString*)star01 star02:(NSString*)star02 star03:(NSString*)star03 colour:(UIColor*)Starcolour
{
[self enumerateChildNodesWithName:star01 usingBlock:^(SKNode *node, BOOL *stop)
{
NSLog(@"node.name isEqualToString:star01");
SKSpriteNode *star01Found = (SKSpriteNode*)[self childNodeWithName:star01];
star01Found.color =Starcolour;
star01Found.colorBlendFactor =1.0;
}
关于测试它无法找到精灵,所以我必须针对错误的对象> <什么?
[self enumerateChildNodesWithName:star01 usingBlock:^(SKNode *node, BOOL *stop)
{
if ([node.name isEqualToString:star01])
{
NSLog(@"FOUND STAR");
}}
因此,你有一个名为'MyLabel'的SKNode中的小精灵?是否将MyLabel添加到场景中?如果是这样,那么我相信你需要枚举'MyLabel'的孩子,而不是现场 – Knight0fDragon
Knight0fDragon - 这的确是问题所在 - 谢谢:) – StackBuddy