您当前的位置: 首页 > 

SKSpriteNode对象初始化在iPhone 6 plus中显示不正确的分析及解决

发布时间:2016-06-23 17:53:22 ,浏览量:0

一个SpriteKit项目在其他设备上运行都无问题(无论是真机或是模拟器),但是在iPhone6 Plus上会出现精灵对象纹理被过度放大的现象:

这里写图片描述

从上图中大家可以看到无论是主角或是道具球都过大了.

看了一下精灵图片是放在atlas纹理集文件夹中的:

这里写图片描述

可以看到PowerUp和Player都有对应缩放的版本:Player.png,Player@2x.png以及Player@3x.png.

在各个图片的属性中检查图片的尺寸也都正确,看不出神马问题…

找到SKSpriteNode对象初始化的代码看看:

let orbNode = SKSpriteNode(imageNamed: "PowerUp")

貌似也没什么问题…突然想到上述图片都放在纹理集中,那么都应该被Xcode做过附加操作以形成额外的整张图片,是不是这里出了问题?

将Player共3张图片放到Assets.xcassets中:

这里写图片描述

PowerUp也如法炮制,然后再次编译运行代码,这回所有精灵的尺寸都是正确的了,没有发生放大的情况!看来@x后缀只对直接的图片资源有效,因为原来你是将图片放到纹理集中,所以系统处理就会出错.

但如果我只想用纹理集

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    108697博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

1.2451s