SKTexture类
继承自 | NSObject |
符合 | NSCoding NSCopying NSObject(NSObject) |
框架 | /System/Library/Frameworks/SpriteKit.framework |
可用性 | 可用于iOS 7.0或者更晚的版本 |
声明于 | SKTexture.h |
参考指南 | Sprite Kit Progamming Guide |
概览
重要提示:这是一个初步的API或者开发技术文档。虽然已经审阅了本文档的技术准确性,但是它不是最终的版本。本机密信息仅适用于苹果开发者计划的注册会员。苹果提供这些机密信息来帮助你采用这些技术和编程接口。此信息如果有变更,根据本文档实现的软件应使用操作系统软件和最终文档测试。新版本的文档可能会拥有新的API或者技术。 |
一个SKTexture实例代表一个可复用的图片,通常用在SKSpriteNode中。重用纹理实例使Sprite Kit处理和渲染精灵更有效率。
你可以通过保存在app包中的图片文件,Quartz图片,原始像素数据来创建纹理。你也可以通过使用一个CG滤镜在原纹理的基础上创建一个新的纹理,或者用一个纹理的部分区域创建新纹理。
如果你频繁地使用一组纹理,不要分开加载这些图片。你可以使用一个纹理集来创建这些纹理。使用纹理集通常可以降低总内存以及提升渲染性能。
子类注意事项
这个类不能被继承。
方法
类方法
创建一个新的纹理实例。
+ textureWithImageNamed: |
通过一个在app包中的图片文件创建纹理。
+ (SKTexture *)textureWithImageNamed:(NSString *)name
参数 | name:图片文件的名字 |
返回值 | 一个新的纹理实例 |
论述
纹理第一次渲染到场景的时候,纹理图片的数据自动加载。
Sprite Kit根据一个指定的文件名,在app包中寻找这个图片。如果找不到这个图片,Sprite Kit在app包得中任何一个纹理集中寻找。如果包中的任何位置都找不到这个图片,Sprite Kit将创建一个图片占位符。
+ textureWithImage: |
通过一个NSImage实例创建纹理。
+ (SKTexture *)textureWithImage:(NSImage *)image
参数 | image:一个NSImage实例 |
返回值 | 一个新的纹理实例 |
+ textureWithCGImage: |
通过一个Quartz 2D图片创建纹理。
+ (SKTexture *)textureWithCGImage:(CGImageRef)image
参数 | image:一个CGImageRef实例 |
返回值 | 一个新的纹理实例 |
论述
图片数据将会被复制到新的纹理实例中。
+ textureWithData:size: |
通过原始像素数据创建纹理。
+ (SKTexture *)textureWithData:(NSData *)pixelData size:(CGSize)size
参数 | pixelData:一个NSData实例,必须是32色,颜色应该已乘过alpha size:纹理的大小 |
返回值 | 一个新的纹理实例 |
论述
图片数据将会被复制到新的纹理实例中。
+ textureWithData:size:rowLength:alignment: |
通过自定义格式的原始像素数据创建纹理。
实例方法
创建一个新的纹理实例
- textureByApplyingCIFilter: |
- (SKTexture *)textureByApplyingCIFilter:(CIFilter *)filter
参数 | filter:一个CG滤镜需要一个单独的输入图片和单独的输出图片 |
返回值 | 一个新的纹理实例 |
查看纹理的属性
- size |
纹理的大小。
- (CGSize)size
参数 | |
返回值 | 纹理的尺寸 |
- textureRect |
一个矩形,定义了纹理用于渲染的部分。
- (CGRect)textureRect
参数 | |
返回值 | 一个矩形,以单元坐标空间表示 |
论述
默认值是矩形覆盖整个纹理(0,0)-(1,1)。你可以直接设置这个值。如果只是要使用纹理的一部分,调用textureWithRect:inTexture:方法来创建一个新的纹理。
加载和卸载纹理
- preload |
预加载纹理图片。
- (void)preload
论述
当精灵绘制一个纹理时,纹理实例自动加载图片数据然后使图形硬件可用它。然而,这个加载过程是需要时间的。如果一帧中需要加载的纹理太多,这一帧将会花费很长时间来渲染,帧速率会降低。使用预加载可以使纹理加载遍布一系列的帧中。当一个纹理在不久的将来使用时,可以使用这个方法。
常量
typedef NS_ENUM(NSInteger,
SKTextureFilteringMode){
SKTextureFilteringNearest,
SKTextureFilteringLinear,
}
SKTextureFilteringNearest | 每个像素点使用最近的像素点绘制,速度较快,结果通常是像素化的。 |
SKTextureFilteringLinear | 每个像素使用一个多个像素的线性滤镜,质量较高,速度较慢。 |
SKTexture类的更多相关文章
- iOS -- SKTexture类
SKTexture类 继承自 NSObject 符合 NSCodingNSCopyingNSObject(NSObject) 框架 /System/Library/Frameworks/Sprite ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- Swift游戏实战-跑酷熊猫 06 创建平台类以及平台工厂类
这节内容我们一起学习下随机长度的踩踏平台的原理是怎么样的. 要点: 平台类 我们的平台类继承于SKNode,这样就能被添加进其它节点进而显示在场景中. 它有一个方法来创建平台,这个方法接收一个包含SK ...
- SKTextureAtlas类
继承自 NSObject 符合 NSCodingNSObject(NSObject) 框架 /System/Library/Frameworks/SpriteKit.framework 可用性 可用 ...
- iOS -- SKEmitterNode类
SKEmitterNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObje ...
- iOS --SKView类
SKView类 继承自 UIView:UIResponder:NSObject 符合 NSCoding(UIView)UIAppearance(UIView)UIAppearanceContainer ...
- iOS -- SKTextureAtlas类
SKTextureAtlas类 继承自 NSObject 符合 NSCodingNSObject(NSObject) 框架 /System/Library/Frameworks/SpriteKi ...
- iOS -- SKSpriteNode类
SKSpriteNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) ...
- C++ 可配置的类工厂
项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...
随机推荐
- SQL In的替换
前2天在搞SQL的的时候,发现其中有很多in的操作,诸如:id in(1,2,3)或id in(select id from table……),这个对SQL来说并不是最好的选择,执行效率是偏低的[它执 ...
- [个人原创]关于java中对象排序的一些探讨(二)
2. 使用Collections.sort()方法 Collections类中提供了诸多静态方法,诸如addAll(),max()等等.当自己相对Collection接口下的类处理的时候,可以看看这 ...
- JavaScript--数组--sort比较器
因为原装的sort这个API其实是先把要比较的数转换为字符串再进行比较的,所以并不好用 所以准备自定义一个比较器函数: //sort原理--->sort(arr,compare) functio ...
- DOM4J 读取XML配置文件进行数据库连接
介绍介绍DOM4J. 据说是非常优秀非常优秀的Java XML API(Dom4j is an easy to use, open source library for working ...
- Taxi Cab Scheme POJ && HDU
Online Judge Problem Set Authors Online Contests User Web Board Home Page F.A.Qs Statistical Charts ...
- ubuntu系统mysql.h no such file or directory
在Ubuntu系统中,你已经安装了mysql,即你使用sudo apt-get install mysql-server mysql-client然而使用C语言访问mysql数据库时,却发现出现了如下 ...
- cursor变换
cursor:hand 与 cursor:pointer 的效果是一样,都像手形光标.但用FireFox浏览时才注意到使用cursor:hand在FireFox.chorme里并被支持. cursor ...
- python运维开发之第四天
一.装饰器 1.器:代表函数,装饰器本质是函数,(装饰器他函数) 2.功能:为其他函数添加附加功能 3.原则: (1)不能修改被装饰函数的源代码 (2)不能修改被装饰函数的调用方式 4.实现装饰器知识 ...
- sort对二维字符数组排序(转)
由于二维字符数组的第二维没有赋值运算符,即不能对整个一维数组进行赋值,因此是无法直接对二维数组用sort进行排序的,解决办法有二种: 代码一: #include <iostream> #i ...
- KeilMDK4.7a下载地址/中文乱码解决/自动关联设置
推荐地址1,速度更快(确定为4.7a版本,且含注册机):1.http://www.mcuzone.com/software/keil/MDK470.RAR 2.http://kuai.xunlei.c ...