iOS -- SKTexture类
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类的更多相关文章
- IOS 公共类-MyDateUtil 日期处理Util
IOS 公共类-MyDateUtil 日期处理Util 此为处理日期的公共类.适用IOS6+ .h文件: #import <Foundation/Foundation.h> //适用 IO ...
- IOS 公共类-MyMBProgressUtil Progress显示
IOS 公共类-MyMBProgressUtil Progress显示 此公共类用于显示提示框,对MBProgress的进一步封装.可以看下面的代码 接口: @interface MyMBProgre ...
- 一位iOS教育类应用开发者是如何赚到60多万美元?
注:伯乐在线12月19日在@程序员的那些事 微博推荐了此文的英文原文,非常感谢@dotSlash 的翻译. 转眼距我写<我如何在iOS教育类应用中赚到20万美元>这篇博文已经一年多了,它 ...
- SKTexture类
继承自 NSObject 符合 NSCodingNSCopyingNSObject(NSObject) 框架 /System/Library/Frameworks/SpriteKit.framewo ...
- 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) ...
- iOS系类教程之用instruments来检验你的app
比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程.这里是原文 入门 为了节省大家的时间,提供一个演示的D ...
随机推荐
- meteor 检测运行环境,手机或者桌面
meteor add mystor:device-detection Meteor.Device.isPhone() https://atmospherejs.com/mystor/device-de ...
- [POJ 1006] Biorhythms C++解题
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 107569 Accepted: 33365 ...
- day03_09 编码部分历史及文件编码简介
详细课件:http://www.cnblogs.com/alex3714/articles/5465198.html 字符编码 支持中文的第一张表就是GB2312 1980 gb2312 6700+ ...
- ACM-ICPC北京赛区2017网络同步赛
E: Cats and Fish 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There are many homeless cats in PKU campus. T ...
- pycharm配置 自动运行指定脚本
配置:RUN -Debug Configuration Script: 脚本的地址 Script Parameters: 脚本的参数 Interpreter: python解释器
- Android金额输入EditText共通方法
代码改变世界 EditText输入框实现最多到小数点后两位(金额显示) package com.lianpos.util; import android.text.Editable; import a ...
- android.os.NetworkOnMainThreadException解决办法
代码改变世界 在发起Http请求的Activity里面的onCreate函数里面添加如下代码: StrictMode.setThreadPolicy(new StrictMode.ThreadPoli ...
- iOS学习笔记46-Swift(六)扩展
一.Swift扩展 扩展就是向一个已有的类.结构体或枚举类型添加新功能,这包括在没有权限获取原始源代码的情况下扩展类型的能力.扩展和 Objective-C中的分类(category)类似,但是它要比 ...
- 【Luogu】P2886牛继电器(矩阵加速floyd)
题目链接 矩阵加速floyd……牛逼牛逼. 注意离散化,注意更新的时候要用旧的权值矩阵更新. #include<cstdio> #include<cstring> #inclu ...
- Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)
Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...