我正在开发一个sprite kit游戏,我无法弄清楚为什么它不会按照我想要的方式扩展我的图像。游戏是横向的。这是我遇到问题的代码:
SKSpriteNode *Pathway = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:@"path.png"] size:CGSizeMake(568, 220)];
Pathway.zPosition = -1.0;
Pathway.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
Pathway.name = @"Pathway";
[self addChild:Pathway];
基本上我希望屏幕上的纹理如下:
但由于某些原因,即使我更改纹理的大小(568,220),它也会缩放图像并且不适合屏幕。
我尝试使用的[Pathway setScale:0.7];
接近我正在寻找的尺寸,但我需要精确到568 x 220. 即使我正在设置它,它仍然会扭曲我的形象尺寸为568 x 220?
如果需要更多信息,请告诉我,我认为这应该足够了。
答案 0 :(得分:7)
我很确定你是在装有Retina显示屏的设备上进行测试的。
将path.png重命名为path@2x.png并使用[SKTexture textureWithImageNamed:@"path"]
代替[SKTexture textureWithImageNamed:@"path.png"]
。这应该可以解决你的问题。
阅读Apple的教程Supporting High-Resolution Screens In Views了解更多信息。
答案 1 :(得分:0)
使用setScale直接缩放内容比例,从而产生与缩放前相同宽高比的精灵。
尝试设置xScale和yScale属性以进行缩放,而不考虑宽高比