Spritenodes看起来很紧张

时间:2015-07-04 19:09:16

标签: image sprite-kit skspritenode

我正在尝试设置spritenode的自定义大小。这是我的代码:

    var twitterIcon = SKSpriteNode(imageNamed: "Twitter")
    twitterIcon.size = CGSizeMake(80, 80)
    twitterIcon.position = CGPointMake(70, self.frame.size.height - 70)
    twitterIcon.zPosition = 3
    twitterIcon.name = twitterCategoryName

问题是它显示为椭圆

spritenode

我认为GameScene的设置方式可能存在问题 - 但我不确定

sks

旁注 - 仅在iPhone上发生这种情况。在iPad上进行测试时,它可以正常工作。

1 个答案:

答案 0 :(得分:1)

听起来问题是你的方面设置为Fill。这不会保持你的比例,并会导致倾斜。

你真正想要的是AspectFit或AspectFill。这些将在不改变场景宽高比的情况下调整场景大小。问题是因为你的场景是4:3会根据你的选择裁剪或添加黑条(大部分都是裁剪,但必须特别考虑放置项目)

typedef NS_ENUM(NSInteger, SKSceneScaleMode) {
    SKSceneScaleModeFill,           /* Scale the SKScene to fill the entire SKView. */
    SKSceneScaleModeAspectFill,     /* Scale the SKScene to fill the SKView while preserving the scene's aspect ratio. Some cropping may occur if the view has a different aspect ratio. */
    SKSceneScaleModeAspectFit,      /* Scale the SKScene to fit within the SKView while preserving the scene's aspect ratio. Some letterboxing may occur if the view has a different aspect ratio. */
    SKSceneScaleModeResizeFill      /* Modify the SKScene's actual size to exactly match the SKView. */ 
} NS_ENUM_AVAILABLE(10_9, 7_0);

这是有道理的,因为iPad是1024 x 768(与你的sks场景相同),这是4:3的宽高比,你的iPhone将是16:9(如果是iPhone 5或更高版本)。你不能在屏幕上使用它,不会出现裁剪,黑条或歪斜。

希望这是有道理的,也是有帮助的。