是否可以使用SpriteKit生成/绘制纹理?

时间:2013-09-17 21:32:36

标签: ios sprite-kit

不能谷歌任何东西。实际上,关于这个新框架的信息很少。 我唯一能找到的就是将Core Image滤镜应用于纹理。但我想在图像上方绘制一个简单的矩形,我需要编写自己的CI过滤器..

有人对某个主题有所了解吗?

2 个答案:

答案 0 :(得分:7)

如果您只需要一个矩形,请使用@Kex解决方案。

通常,您可以从任何UIImage或CGImage创建纹理。 [SKTexture textureWithImageNamed:@"Spaceship.png"] [SKTexture textureWithImage:[UIImage imageNamed:@"Spaceship.png"]]只是方便UIGraphicsBeginImageContext(CGSizeMake(256, 256)); CGContextRef ctx = UIGraphicsGetCurrentContext(); [[SKColor yellowColor] setFill]; CGContextFillEllipseInRect(ctx, CGRectMake(64, 64, 128, 128)); UIImage *textureImage = UIGraphicsGetImageFromCurrentImageContext(); SKTexture *texture = [SKTexture textureWithImage:textureImage]; SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithTexture:texture]; [self addChild:sprite];

因此,要对纹理进行自定义绘制,可以使用,例如:

{{1}}

答案 1 :(得分:3)

纹理只是原始的图形表示,我不会用它们解决这个问题。

我会从纹理创建一个精灵,然后是第二个具有给定大小(例如100x100)&的矩形精灵。我会将它添加到给定位置的原始位置(例如CGPointZero)。

SKSpriteNode *rectSprite = [SKSpriteNode spriteNodeWithColor:[SKColor magentaColor] size:CGSizeMake(100, 100)];
rectSprite.position = CGPointZero;
[originalSprite addChild:rectSprite];

这样矩形将成为精灵的一部分。所有对父精灵(具有纹理的精灵)的变换/动作也适用于它。