iOS -- SKTextureAtlas类

SKTextureAtlas类

继承自 NSObject
符合 NSCoding
NSObject(NSObject)
框架  /System/Library/Frameworks/SpriteKit.framework
可用性 可用于iOS 7.0或者更晚的版本
声明于 SKTextureAtlas.h
参考指南 Sprite Kit Progamming Guide

概览

重要提示:这是一个初步的API或者开发技术文档。虽然已经审阅了本文档的技术准确性,但是它不是最终的版本。本机密信息仅适用于苹果开发者计划的注册会员。苹果提供这些机密信息来帮助你采用这些技术和编程接口。此信息如果有变更,根据本文档实现的软件应使用操作系统软件和最终文档测试。新版本的文档可能会拥有新的API或者技术。

一个纹理集实例是一个相关的纹理的集合。它是通过一个保存在app包中的纹理集来加载的。

使用纹理集可以使纹理的加载和使用更加高效。例如,如果你有一个屏幕需要绘制不同的纹理,Sprite Kit分开绘制这些纹理。如果所有的这些纹理来自同一个纹理集,那么Sprite Kit可以一次就把这些纹理全部绘制完。每当你有一些纹理总是在一起绘制,你应该把它们加到一个纹理集中。

要创建一个纹理集,需要使用Xcode。你添加一个.atlas扩展名的文件夹,然后将纹理集添加到这个文件夹中。当你的app开始构建时,Xcode构建纹理集并将它添加到app包中。编译好的纹理格式是私有的。更多信息请参考Texture Atlas Help。

通常情况下,你不需要使用纹理集类来访问保存在纹理集中的纹理。如果你加载一个保存在app包中的图片,Sprite Kit会首先在app包中寻找,如果没有它会自己到纹理集中寻找。当你需要明确地从纹理集中加载或者查看纹理集的内容时才需要使用纹理集类。

子类注意事项。

本类不能被继承。

方法

类方法

创建一个纹理集。

+ atlasNamed:

通过app包种的数据创建一个纹理集。

+ (SKTextureAtlas *)atlasNamed:(NSString *)name

参数 name:纹理集的名字,不需要.atlas扩展名
返回值 一个新的纹理集

论述

如果找不到这个纹理集,将会抛出一个异常。

实例方法

通过纹理集创建一个纹理。

- textureNamed:

通过纹理集创建一个纹理。

- (SKTexture *)textureNamed:(NSString *)name

参数 name:保存在纹理集中的纹理的名字
返回值 一个新的纹理,如果纹理集中没有此纹理,则返回nil

加载和预加载纹理集数据

- preload:

尝试将纹理集预加载到图形内存中。

- (void)preload

论述

当精灵绘制一个纹理集中的纹理时,纹理实例自动加载图片数据然后使图形硬件可用它。然而,这个加载过程是需要时间的。如果一帧中需要加载的纹理太多,这一帧将会花费很长时间来渲染,帧速率会降低。使用预加载可以使纹理加载遍布一系列的帧中。当一个纹理在不久的将来使用时,可以使用这个方法。

属性

查看纹理集

textureNames

纹理集中纹理的名字。只读。

@property(nonatomic, readonly) NSArray *textureNames

论述

该属性保存一个数组,数组内容为NSString格式。每个字符串都是保存在集合中的纹理的名字。数组元素的个数就是纹理集中保存的纹理的个数。

原文地址:https://www.cnblogs.com/mafeng/p/7561749.html