在精灵套件场景-iOS中使用重复图像创建栏
我正在用Xcode的精灵工具包模板开发一款iOS游戏 在我的实际游戏场景中,我需要添加一个顶部栏,它应该使用一个在x轴上重复的模式,直到屏幕结束 我试过这个:在精灵套件场景-iOS中使用重复图像创建栏,ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,我正在用Xcode的精灵工具包模板开发一款iOS游戏 在我的实际游戏场景中,我需要添加一个顶部栏,它应该使用一个在x轴上重复的模式,直到屏幕结束 我试过这个: topBar = [[SKSpriteNode alloc] init]; topBar.color = [UIColor colorWithPatternImage:[UIImage imageNamed:@"topBar"]]; topBar.position = CGPointMake(CGRectGetMidX(self.fram
topBar = [[SKSpriteNode alloc] init];
topBar.color = [UIColor colorWithPatternImage:[UIImage imageNamed:@"topBar"]];
topBar.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame));
[self addChild:topBar];
除非我为UIColor提供颜色,而不是图像,否则这不起作用。我在这个论坛上读到,显然SKSpriteNode不支持colorWithPatternImage
因此,我下一次尝试是添加UIView,并在视图的背景上使用colorWithPatternImage。但是,当我使用“颜色非图像”时,这不会返回任何内容,甚至不会返回白色:
topBar = [[UIView alloc] initWithFrame:CGRectMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame), self.frame.size.width, 40)];
topBar.layer.backgroundColor = [UIColor whiteColor].CGColor;
[self.view addSubview:topBar];
知道正确的方法是什么吗?SKSpriteNode不支持带有图案或由图案生成的UIColor,只能应用纯色
而是使用图案图像创建具有所需图案的精灵。如果将图案图像设置为灰度,则可以使用SKSpriteNode的
color
和colorBlendFactor
属性将图案图像/精灵的颜色更改为所需的任何颜色和任何颜色亮度。我理解SKSpriteNode不支持此功能。您建议使用我要重复的图像?创建一个精灵节点?。。在这种情况下,由于我的图像是2px宽,我如何使它在宽度上填充屏幕?我还考虑过使用“for”循环创建带有图像的精灵节点,但这不会导致效率方面的问题吗?您可以将图案图像放大,或者通过创建多个精灵来重复它。也许两者都可以平衡精灵的数量和纹理的大小,但如果有疑问,只需使用全尺寸图像,因为它将最容易使用that.OMG。我不敢相信这是如此简单:)我想,如果我的图像是2px,我给它分配了一个更大的宽度,它看起来会像质量差,就像创建网站时发生的那样。显然情况并非如此。修复它的代码:topBar=[[SKSpriteNode alloc]initWithImageNamed:@“topBar]”;topBar.size=CGSizeMake(self.frame.size.width,80);topBar.position=CGPointMake(CGRectGetMidX(self.frame)、CGRectGetMaxY(self.frame));[自添加子项:顶栏]代码>谢谢你的帮助。