UIImage 中的 SKTexture 看起来不同

Posted

技术标签:

【中文标题】UIImage 中的 SKTexture 看起来不同【英文标题】:SKTexture from UIImage looks different 【发布时间】:2014-02-13 20:46:38 【问题描述】:

我正在玩 SpriteKit,我正在从 UIImage 创建一个 SKTexture,然后使用 SKSpriteNode 将孩子添加到我的 SKScene(作为背景),一切正常,除了 UIImage 看起来与原始图像,我尝试在 Photoshop 中重新创建图像,但问题仍然存在,在模拟器和真实设备上测试以及不同的图像颜色,没有变化。

图片格式为PNG,我在Xcode 5中通过Images.xcassets添加

图像,结果:

不同的图像,结果:

我在我的 SKScene 子类中使用以下代码:

- (id)initWithSize:(CGSize)size


    if (self = [super initWithSize:size]) 

        SKTexture *textureGradient = [SKTexture textureWithImage:[UIImage imageNamed:@"Image"]];
        SKSpriteNode* spriteGradient = [SKSpriteNode spriteNodeWithTexture:textureGradient];
        [self addChild:spriteGradient];

    
    return self;

我做错了什么?

任何帮助将不胜感激。 :)

【问题讨论】:

它看起来是垂直拉伸的?仔细检查您的尺码 SKSpriteNode 的颜色属性设置了吗?你会在任何地方更改 alpha 吗? 谢谢你们!看起来图像被拉伸了。解决了 spriteGradient.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame)); 【参考方案1】:

解决方案:

是我的错,图片位置不对,所以我改了位置属性:

SKTexture *textureGradient = [SKTexture textureWithImage:[UIImage imageNamed:@"Image"]];
SKSpriteNode* spriteGradient = [SKSpriteNode spriteNodeWithTexture:textureGradient];
spriteGradient.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame));
[self addChild:spriteGradient];

【讨论】:

以上是关于UIImage 中的 SKTexture 看起来不同的主要内容,如果未能解决你的问题,请参考以下文章

我的 SKTexture 尺寸不适合我的 SKSpriteNode

从 UIImage 设置 SKSpriteNode

SKTexture 返回错误的大小?

如何在没有 SKTexture 的情况下更改 didBeginContact 中的 SKSpriteNode 大小和颜色?

在没有 CoreText 的情况下将 UITextView 中的文本包装在 UIImage 周围

如何将 SKSpriteNode 合并到 SKTexture 以在 Swift 3 中形成新的 SKSpriteNode?