继承自 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类的更多相关文章

  1. iOS -- SKTexture类

    SKTexture类 继承自 NSObject 符合 NSCodingNSCopyingNSObject(NSObject) 框架  /System/Library/Frameworks/Sprite ...

  2. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  3. Swift游戏实战-跑酷熊猫 06 创建平台类以及平台工厂类

    这节内容我们一起学习下随机长度的踩踏平台的原理是怎么样的. 要点: 平台类 我们的平台类继承于SKNode,这样就能被添加进其它节点进而显示在场景中. 它有一个方法来创建平台,这个方法接收一个包含SK ...

  4. SKTextureAtlas类

    继承自 NSObject 符合 NSCodingNSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用 ...

  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. C++ 可配置的类工厂

    项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...

随机推荐

  1. 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序(Oledb)

    转载:http://blog.csdn.net/lemontec/article/details/1754413 前几天用c#读 Excel 出现了如下问题未在本地计算机上注册“Microsoft.J ...

  2. (转)dedecms [field:array runphp='yes']标签使用技巧

    field支持用array获取任意字段的值:(支持标记:文章内容模板的 {dede:field name=’array’ /}.arclist.arclistsg.loop.sql 标签) 我们平时常 ...

  3. Java序列化的机制和原理

    Java序列化的机制和原理 本文讲解了Java序列化的机制和原理.从文中你可以了解如何序列化一个对象,什么时候需要序列化以及Java序列化的算法. 有关Java对象的序列化和反序列化也算是Java基础 ...

  4. Java学习----你的选择是什么-条件结构

    import java.util.Scanner; public class Student { public static void main(String[] args) { byte money ...

  5. 移除IOS下按钮的原生样式

    写WAP页面的时候  一定要加上这组样式,以避免在IOS下面按钮被系统原生样式影响 input,textarea {outline-style:none;-webkit-appearance:none ...

  6. iOS开发——常用Runtime函数

    Runtime函数 1.可以通过NSObject的一些方法获取运行时信息或动态执行一些消息:1./*Returns a Boolean value that indicates whether the ...

  7. Net Core 项目实战之权限管理系统(0)

    0 前言 Net Core 项目实战之权限管理系统(0) 无中生有   0 http://www.cnblogs.com/fonour/p/5848933.html 学习的最好方法就是动手去做,这里以 ...

  8. PHP之路——MySql查询语句

    1,select查询的基本结构 select 字段 from 表 where 过滤条件 group by 分组条件 having 过滤的第二条件 order by 排序条件 limit 限定结果条件; ...

  9. Rectangle 响应按键

    import QtQuick 2.4 import QtQuick.Window 2.2 Window { visible: true MainForm { anchors.fill: parent ...

  10. Android 有趣味的GridView

    工作这么久以来,都是以解决需求为目标.渐渐发现这种学习方式不好,学到的知识能马上解决问题,但没有经过梳理归纳.故想系统总结下一些有趣味的知识点.在这篇博客中想以一个例子系统讲解下GridView控件涉 ...