SKSpriteNode
由多个图像组成的最佳方法是什么?
我发现它[SKTexture textureWithImage:image];
不使用 scale 属性(当我将它与自定义位图组装图像一起使用时,我有一个小的SKSpriteNode
)。
也许我可以在倍数之间创建一个链接,SKSpriteNode
但我不确定这对于碰撞检测是否是一个好主意。
编辑:
适合我的解决方案。
此代码采用 3 个纹理,将它们绘制在GraphicsContext
创建UIImage
.
然后我把它添加UIImage
到我SKNode
现在有多个纹理的地方。但是,在我的情况下指定size 属性非常重要。如果不这样做,节点将使用错误的比例因子,并且您将拥有小纹理(非视网膜)。SKNode
[self setSize:CGSizeMake(WIDTH_HERO, HEIGHT_HERO)];
CGSize mergedSize = CGSizeMake(WIDTH_HERO, HEIGHT_HERO);
UIGraphicsBeginImageContextWithOptions(mergedSize, NO, 0.0f);
[textureImage1 drawInRect:CGRectMake(0, 0, WIDTH_HERO, textureImage1.size.height)];
[textureImage2 drawInRect:CGRectMake(0, 40, WIDTH_HERO, textureImage2.size.height)];
[textureImage3 drawInRect:CGRectMake(0, 0, WIDTH_HERO, textureImage3.size.height)];
UIImage *mergedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self setTexture:[SKTexture textureWithImage:mergedImage]];