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. navicat for mysql 在win7下设置定时计划之导出数据处理

    navicat for mysql 在win7下设置定时计划之导出数据处理 博客分类: mysql navitcatmysql定时任务导出  前两篇记录了,navicat for mysql计划的入门 ...

  2. day07 类的进阶,socket编程初识

    类的静态方法: 正常: 添加静态方法: 就会变成一个函数,不会自动传self 参数,不会调用类的变量和实例的变量  不在需要self 名义上归类管,但是它就是一个单独的函数,不在需要传入self,想怎 ...

  3. C语言知识点(4)

    一.while.    dowhile. 1.while while (表达式) { 语句: … 语句: } 2.while do { printf(“%d/n,I);…}while (i<=1 ...

  4. Chromo开发常用插件和***工具

    地址:https://www.google.com/chrome/webstore/ ***工具:链接:http://pan.baidu.com/s/1pLakW7T 密码:2gpw Axure RP ...

  5. C/C++、Java、Python谁是编译型语言,谁是解释型语言?

    最近各大互联网公司线上笔试,编程题目里的编译器只支持C/C++.Java,甚至有的支持javaScrpit和Pascal,就是不支持Python.让一直以来用惯了Python的我直吐血,于是今天痛定思 ...

  6. iOS---->CADisplayLink、比NSTimer更精确的定时器

    什么是CADisplayLink CADisplayLink是一个能让我们以和屏幕刷新率相同的频率将内容画到屏幕上的定时器.我们在应用中创建一个新的 CADisplayLink 对象,把它添加到一个r ...

  7. Failed to apply plugin [id 'com.gradle.build-scan']

    把spring源码clone下来之后,使用gradle编译不通过,异常日志如下: FAILURE: Build failed with an exception. * Where: Build fil ...

  8. scrapy爬取用户信息 ---崔志才

    这个实例还是值得多次看的 其流程图如下,还是有一点绕的. 总结: 1 Requst(rul=' xxx ',callback= ' '),仅仅发起 某个网页 的访问请求,没啥了.剩下的交给回调函数 2 ...

  9. python 粘包问题及解决方法

    一粘包 TCP协议是面向对象的,面向流的,提高可靠性服务.使用了优化算法,Nagle算法.将多次间隔较少且数据量小的数据,合并成一个大的数据块,然后进行封包.这样接收端就很难分辨出来.TCP协议数据是 ...

  10. POJ4007 Flood-it!

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 337   Accepted: 123 Description Flood ...