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 每个像素使用一个多个像素的线性滤镜,质量较高,速度较慢。

 
 

iOS -- SKTexture类的更多相关文章

  1. IOS 公共类-MyDateUtil 日期处理Util

    IOS 公共类-MyDateUtil 日期处理Util 此为处理日期的公共类.适用IOS6+ .h文件: #import <Foundation/Foundation.h> //适用 IO ...

  2. IOS 公共类-MyMBProgressUtil Progress显示

    IOS 公共类-MyMBProgressUtil Progress显示 此公共类用于显示提示框,对MBProgress的进一步封装.可以看下面的代码 接口: @interface MyMBProgre ...

  3. 一位iOS教育类应用开发者是如何赚到60多万美元?

    注:伯乐在线12月19日在@程序员的那些事 微博推荐了此文的英文原文,非常感谢@dotSlash 的翻译.  转眼距我写<我如何在iOS教育类应用中赚到20万美元>这篇博文已经一年多了,它 ...

  4. SKTexture类

    继承自 NSObject 符合 NSCodingNSCopyingNSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framewo ...

  5. iOS -- SKEmitterNode类

      SKEmitterNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObje ...

  6. iOS --SKView类

    SKView类 继承自 UIView:UIResponder:NSObject 符合 NSCoding(UIView)UIAppearance(UIView)UIAppearanceContainer ...

  7. iOS -- SKTextureAtlas类

      SKTextureAtlas类 继承自 NSObject 符合 NSCodingNSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKi ...

  8. iOS -- SKSpriteNode类

    SKSpriteNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) ...

  9. iOS系类教程之用instruments来检验你的app

    比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程.这里是原文   入门 为了节省大家的时间,提供一个演示的D ...

随机推荐

  1. luogu3370 【模板】字符串哈希

    #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> ...

  2. Apache 根据不同的端口 映射不同的站点

    以前,在本地新建个项目,总是在Apache的htdocs目录下新建个项目目录,今年弄了个别人写好的网站源码,因为该系统的作者假定网站是放在根目录的,放在二级目录下会出错.所以无奈,只能想办法,根据端口 ...

  3. 大数据学习——kettle的简单使用

    1 生成随机数保存到本地文件 新建转换--输入--生成随机数--输出--文本文件输出--保存到本地文件 2 在线预览生成结果 3 字段选择 4 增加常量 5 生成多条数据 右键生成随机数--改变开始复 ...

  4. re——正则表达式

    常用的表达式规则 '.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r&q ...

  5. 【LeetCode】Binary Tree Postorder Traversal(二叉树的后序遍历)

    这道题是LeetCode里的第145道题. 题目要求: 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很 ...

  6. spring AOP详解四

    AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理.安全检查.缓存.对象池管理等.AOP 实现的关键就在于 ...

  7. 【Luogu】P1411树(树形高精DP)

    题目链接 我貌似又做了一道高精题呢(笑) 这题的DP方程很好想,设f[i][j]表示i为根的子树,i所在联通块大小为j的最大值,然后乱搞 但是要高精,那么搞是得要高精除的 所以考虑f[i][j]是除以 ...

  8. BZOJ3990 [SDOI2015]排序 【搜索】

    题目 小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作有N种,每种操作最多可以执行一次,对于所有的i(1<=i<=N),第i中操作为将序列从左到 ...

  9. html body width height 100%使用

    首先我们来看一个实际的问题,让body中的一个div占全屏,(问题来源:http://stackoverflow.com/questions/1575141/make-div-100-height-o ...

  10. 算法复习——背包dp

    1.01背包 二维递推式子: 代码: ;i<=n;i++) ;x--) ][x-w[i]]+c[i],f[i-][x]); ][x]; printf("%d",f[n][m] ...