iOS学习开发傲视苍穹iOS《Objective-C》VIP专题iOS开发技术分享

SpriteKit当中的SKView类

2018-11-07  本文已影响10人  弹吉他的少年
SpriteKit SKView类
继承自 UIView,UIResponder,NSObject
符合 NSCoding(UIView),UIAppearance(UIView),UIAppearanceContainer(UIView),UIDynamicItem(UIView),NSObject(NSObject)
框架 /System/Library/Frameworks/SpriteKit.framework
声明于 SKView.h
参考指南 Sprite Kit Progamming Guide

概览

一个SKView实例是一个显示Sprite Kit内容的视图。这个内容是由场景所提供的。

通过调用视图的presentScene:方法可以弹出一个场景。当一个场景被弹到视图上,它交替运行场景的模拟和场景的渲染。你可以通过将视图的pause属性设置为YES来暂停这个场景。

方法

弹出一个场景

- (void)presentScene:(SKScene *)scene
参数 解释
scene 待显示的场景

返回值

如果新场景存在,将直接替换旧场景。

弹出一个场景并播放一个过场动画。

- (void)presentScene:(SKScene *)scene transition:(SKTransition)transition
参数 解释
scene 待显示的场景
transition 两个场景之间的过场动画

返回值
如果视图当前有一个显示的场景,视图的场景属性将立即更新,然后执行过场动画来交换两个场景。否则,新场景将直接弹出,并且过场动画将被忽视。

从场景内容中获取图片
渲染并返回一个节点中的纹理。

- (SKTexture *)textureFromNode:(SKNode *)node
参数 解释
node 你想要绘制的纹理的节点实例

返回值

节点不需要添加到场景中就可以被绘制。新纹理的大小是通过节点的calculateAccumulatedFrame方法计算得出的。如果这个节点不是一个场景,它将绘制一个背景色[SKColor clearColor]。

转换视图和场景的坐标系
将场景坐标系转换为视图坐标系。

- (CGPoint)convertPoint:(CGPoint)point fromScene:(SKScene *)scene
参数 解释
point 场景坐标系中的一个点
scene 一个场景

返回值

论述

这个方法转换坐标系上的点,使他就好像在视图坐标系上一样。

将视图坐标系转换为场景坐标系。

- (CGPoint)convertPoint:(CGPoint)point toScene:(SKScene *)scene
参数 解释
point 视图坐标系中的一个点
scene 一个场景

返回值

论述

这个方法转换坐标系上的点,使他就好像在场景坐标系上一样。

属性

属性名 属性 结果 论述
当前场景 scene 视图当前弹出的场景 默认值为nil。
暂停场景 paused 一个布尔值,表示视图中场景的动画是否暂停 如果该值为YES,那么场景的内容将固定在屏幕上。没有动作和物理模拟会被执行。
异步渲染 asychronous 一个布尔值,表示内容是否异步渲染 默认值为YES。如果该值为NO,那么视图内容和动画更新将是同步的。
显示调试信息 showsFPS 是否显示FPS 帧率是表现场景的一个很好的指标。尽量避免创建的场景的帧率差别过大。
绘制次数 showsDrawCount 是否显示绘制次数 Sprite Kit中的一些操作可能会需要多次绘制。例如,一个特效节点必须先将其子节点单独绘制到一个缓冲区,要使用这个特效,还需要将这些结果混合输出的父节点。这些额外的绘制次数会消耗更多地绘制资源,减少游戏的帧率或者增加总消耗。使用绘制次数可以从另一方面分析你游戏的性能。
节点个数 showsNodeCount 是否显示节点个数 -
定义帧率 frameInterval 场景更新之前必须经过的帧数 默认值为1,表示场景每帧更新一次。如果是一个大于1的是,场景的更新率可能是一个分数。例如,如果值为2,表示场景每隔一帧更新一次。将值设为一个小于1的数是一个未定义的行为,是一个编程错误。
上一篇 下一篇

猜你喜欢

热点阅读