7

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

有人知道这个话题吗?

4

2 回答 2

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];
于 2013-09-18T23:03:59.097 回答
3

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

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

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

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

于 2013-09-18T00:37:37.953 回答