用精灵套件中的图案绘制背景

时间:2014-01-02 18:15:30

标签: objective-c sprite-kit nsimage

-(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];

}

大家好,我想创建一个图案颜色的节点,这是一个图像,但这段代码根本不起作用。

我尝试了3种不同格式的3种不同图像,所以我认为这不是问题。 我知道变量图像是无用的,但我用它来理解nsimage是否是问题。当我查找图像的值时,它已经创建了一个断点,但它的宽度和高度都是0.

我真的不明白为什么这根本不起作用(节点没有出现)。

2 个答案:

答案 0 :(得分:3)

具有color属性的Sprite Kit节点不支持使用图案图像的颜色。它必须是纯色,例如您使用colorWithRed:green:blue:alpha:创建的颜色。

您应该在图像程序中创建图案图像并将其添加到图像包中。如果将图案图像设置为灰度,则可以在运行时将其着色以创建各种颜色组合。例如,棋盘白/黑图案图像和精灵节点的颜色设置为红色将给你一个黑色&红色图案。调整精灵节点的colorBlendFactor以控制颜色分量的“亮度”。

答案 1 :(得分:1)

Here is a link describes how to draw a background with a pattern image

我在Swift的SKScene版本中做了一些更改:

obj