我一直在玩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的图像。
我猜测这与视网膜图像有关,在这种情况下,有一种简单的方法可以将其关闭并让它以原始尺寸显示图像吗?
答案 0 :(得分:1)
在iOS中使用SKSpriteNode
方法创建spriteWithImageNamed
时,会忽略图像的每英寸点数(DPI)。对于Mac OS X游戏,图像的DPI会影响精灵的大小。如果图像的DPI大于72,则精灵的大小将按比例缩小。例如,如果你的DPI是144,你的精灵将是图像大小的宽度和高度的1/2。