我做了一些研究,我似乎无法找到任何清楚解释如何在动画中预加载单个纹理和纹理的东西.我目前正在使用Assets.xcassets中的Atlas来分组相关的动画图像.在Atlas中显示我的图像是否意味着它们是预装的?就单个图像而言,在GameScene之前声明纹理是否有意义:让laser
Image = SKTexture(imageNamed:“Sprites / laser.jpg”)然后(例如)在我的一个SKSpriteNode子类中我可以通过laserImage通过?
我最终想知道是否有一个定义明确的方法,或者我是否应该在GameScene之前将每个纹理存储为常量.任何关于正确(和最有效)的方法的建议都会很棒.
解决方法
一张单纹理地图集
将所有资产放入一个Sprite Atlas中.如果它们不合适,请至少尝试将单个场景的所有资源放入单个Sprite Atlas中
预加载
如果您愿意,可以使用此代码在内存中预加载纹理图集
SKTextureAtlas(named: "YourTextureAtlasName").preloadWithCompletionHandler { // Now everything you put into the texture atlas has been loaded in memory }
自动缓存
您不需要保存对纹理图集的引用,SpriteKit有一个内部缓存系统.让它做它的工作.
我应该使用哪个名称来引用我的图像?
忘记文件图像的名称,将图像分配给资产目录的名称是您需要的唯一名称.
如何从图像创建精灵到纹理图集?
let texture = SKTextureAtlas(named:"croc").textureNamed("croc_walk01") let croc = SKSpriteNode(texture: texture)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。