如何使用SpriteKit防止图像缩放?

时间:2014-09-05 23:21:25

标签: objective-c sprite-kit

我一直在玩SpriteKit,但注意到它在图片中的加载方式有些奇怪的行为,我试图编写一个切割spritesheet的代码并使用[SKTexture textureWithRect]显示单帧但是图像总是太小了。

通过进行更多测试,我发现只是编写了这段代码:

-(id)initWithSize:(CGSize)size {    
    if (self = [super initWithSize:size]) {
        SKSpriteNode *imageNode = [SKSpriteNode spriteNodeWithImageNamed:@"tree2-final.png"];
        imageNode.position = CGPointMake(400, 400);
        [self addChild:imageNode];
    }
    return self;
}

在SKScene的子类中加载一个带有我的图像的窗口,但它太小,下面是问题的屏幕截图。它显示运行我的代码的窗口,该窗口显示图像以及在预览中显示fullsize的图像。

我猜测这与视网膜图像有关,在这种情况下,有一种简单的方法可以将其关闭并让它以原始尺寸显示图像吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

在iOS中使用SKSpriteNode方法创建spriteWithImageNamed时,会忽略图像的每英寸点数(DPI)。对于Mac OS X游戏,图像的DPI会影响精灵的大小。如果图像的DPI大于72,则精灵的大小将按比例缩小。例如,如果你的DPI是144,你的精灵将是图像大小的宽度和高度的1/2。