【问题标题】:Does sprite-kit make images larger?sprite-kit 会使图像变大吗?
【发布时间】:2014-04-23 02:54:44
【问题描述】:

我正在开发一个精灵套件游戏,但我不知道为什么它不能按照我想要的方式缩放我的图像。游戏是横向的。这是我遇到问题的代码:

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?

如果需要更多信息,请告诉我,我认为这就足够了。

【问题讨论】:

    标签: ios objective-c sprite-kit


    【解决方案1】:

    我很确定您正在使用 Retina 显示屏的设备上进行测试。

    将 path.png 重命名为 path@2x.png 并使用 [SKTexture textureWithImageNamed:@"path"] 而不是 [SKTexture textureWithImageNamed:@"path.png"]。这应该可以解决您的问题。

    阅读 Apple 的教程 Supporting High-Resolution Screens In Views 了解更多信息。

    【讨论】:

    • 所以你是说我们不需要手动输入每个视网膜图像并测试设备是否是视网膜?
    • 不,当然您不必手动执行此操作。将path.pngpath@2x.png 都包含到项目中,让iOS 自动选择使用哪一个。
    • 我只是在 4 英寸模拟器上测试它。然而,当我在视网膜设备上测试它时,这是有用的信息。 @AndreyGordeev
    • @LiamStockhomme 其实没关系。 4 英寸模拟器已模拟 Retina 显示屏
    • 是的。我试了一下,它有点接近我想要的。但是由于某种原因,现在图像太小了。你认为这可能是图像大小吗? @AndreyGordeev
    【解决方案2】:

    使用 setScale 直接按比例缩放内容,从而使精灵遵循与缩放前相同的纵横比。

    尝试设置 xScale 和 yScale 属性以缩放而不考虑纵横比

    【讨论】:

      猜你喜欢
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      相关资源
      最近更新 更多