Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在精灵套件场景-iOS中使用重复图像创建栏_Ios_Objective C_Sprite Kit - Fatal编程技术网

在精灵套件场景-iOS中使用重复图像创建栏

在精灵套件场景-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

我正在用Xcode的精灵工具包模板开发一款iOS游戏

在我的实际游戏场景中,我需要添加一个顶部栏,它应该使用一个在x轴上重复的模式,直到屏幕结束

我试过这个:

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));[自添加子项:顶栏]谢谢你的帮助。