Objective c 在sprite工具包中使用图案绘制背景
} 大家好,我想制作一个带有图案颜色的节点,这是一个图像,但这段代码根本不起作用 我尝试了3种不同格式的3种不同图像,所以我认为这不是问题所在。 我知道变量图像是无用的,但我已经用它来理解nsimage是否是问题所在。当我在断点处查找image的值时,已经创建了它,但是它的宽度和高度都是0Objective c 在sprite工具包中使用图案绘制背景,objective-c,sprite-kit,nsimage,Objective C,Sprite Kit,Nsimage,} 大家好,我想制作一个带有图案颜色的节点,这是一个图像,但这段代码根本不起作用 我尝试了3种不同格式的3种不同图像,所以我认为这不是问题所在。 我知道变量图像是无用的,但我已经用它来理解nsimage是否是问题所在。当我在断点处查找image的值时,已经创建了它,但是它的宽度和高度都是0 我真的不明白为什么这根本不起作用(节点没有显示)。具有颜色属性的精灵工具包节点不支持使用图案图像的颜色。它必须是纯色,例如,您将使用colorWithRed:green:blue:alpha:创建纯色 您应该
我真的不明白为什么这根本不起作用(节点没有显示)。具有颜色属性的精灵工具包节点不支持使用图案图像的颜色。它必须是纯色,例如,您将使用
colorWithRed:green:blue:alpha:
创建纯色
您应该在图像程序中创建图案图像,并将其添加到捆绑包中。如果将图案图像设置为灰度,则可以在运行时对其着色,以创建各种颜色组合。例如,棋盘白/黑图案图像和精灵节点的颜色设置为红色将为您提供黑色和红色图案。调整精灵节点的colorBlendFactor以控制颜色组件的“亮度”。具有颜色属性的精灵工具包节点不支持使用图案图像的颜色。它必须是纯色,例如,您将使用
colorWithRed:green:blue:alpha:
创建纯色
您应该在图像程序中创建图案图像,并将其添加到捆绑包中。如果将图案图像设置为灰度,则可以在运行时对其着色,以创建各种颜色组合。例如,棋盘白/黑图案图像和精灵节点的颜色设置为红色将为您提供黑色和红色图案。调整精灵节点的colorBlendFactor以控制颜色组件的“亮度”。
我对Swift的SKScene版本做了一些更改:
-(void)startNewScene{
[self removeAllChildren];//Clear
NSImage *image=[NSImage imageNamed:@"down"];
//image.size=CGSizeMake(self.barWidth*2, self.frame.size.height);
NSColor *color=[NSColor colorWithPatternImage:[NSImage imageNamed:@"down"]];
SKSpriteNode *sprite= [SKSpriteNode spriteNodeWithColor:color size:CGSizeMake(200, 300)];
sprite.position=CGPointMake(10, CGRectGetMidY(self.frame));
SKAction *move=[SKAction moveToX:self.frame.size.width duration:1];
SKAction *goBack= [SKAction moveToX:-self.barWidth duration:0];
SKAction *action=[SKAction sequence:@[move,goBack]];
[sprite runAction:[SKAction repeatActionForever:action]];
[self addChild:sprite];
我对Swift的SKScene版本做了一些更改:
-(void)startNewScene{
[self removeAllChildren];//Clear
NSImage *image=[NSImage imageNamed:@"down"];
//image.size=CGSizeMake(self.barWidth*2, self.frame.size.height);
NSColor *color=[NSColor colorWithPatternImage:[NSImage imageNamed:@"down"]];
SKSpriteNode *sprite= [SKSpriteNode spriteNodeWithColor:color size:CGSizeMake(200, 300)];
sprite.position=CGPointMake(10, CGRectGetMidY(self.frame));
SKAction *move=[SKAction moveToX:self.frame.size.width duration:1];
SKAction *goBack= [SKAction moveToX:-self.barWidth duration:0];
SKAction *action=[SKAction sequence:@[move,goBack]];
[sprite runAction:[SKAction repeatActionForever:action]];
[self addChild:sprite];