SKScene类
继承自SKEffectNode:SKNode:UIResponder:NSObject符合NSCoding(SKNode)
NSCopying(SKNode)
NSObject(NSObject)框架 /System/Library/Frameworks/SpriteKit.framework可用性可用于iOS 7.0或者更晚的版本声明于SKScene.h参考指南Sprite Kit Progamming Guide
概览
重要提示:这是一个初步的API或者开发技术文档。虽然已经审阅了本文档的技术准确性,但是它不是最终的版本。本机密信息仅适用于苹果开发者计划的注册会员。苹果提供这些机密信息来帮助你采用这些技术和编程接口。此信息如果有变更,根据本文档实现的软件应使用操作系统软件和最终文档测试。新版本的文档可能会拥有新的API或者技术。
一个SKScene实例表示一个游戏中的场景。一个场景节点通常是节点树中的根节点。节点树中的其他节点负责提供游戏内容,场景节点则负责渲染和显示。要显示一个场景,你需要先将它present到一个SKView实例中。
一个场景通过以下的处理来计算内容
1.场景调用update:方法。
2.场景执行其子节点的动作。
3.场景调用didEvaluateActions方法。
4.场景执行加入到场景中的物理体的物理模拟。
5.场景调用didSimulatePhysics方法。
子类节点
有时会创建场景类的子类。在子类场景中,要创景子类场景的内容以及执行逻辑。
方法
初始化一个场景
+ sceneWithSize:
创建并返回一个新的场景实例。
+ (SKScene *)sceneWithSize:(CGSize)size
参数size:场景的大小返回值一个新的场景实例
论述
这个类方法创建一个新的场景并调用它的initWithSize:方法初始化这个场景。
- initWithSize
初始化一个新的场景实例。
- (id)initWithSize:(CGSize)size
参数size:场景的大小返回值一个新的初始化好的场景实例
论述
这是类方法指定的初始化方法。
转变视图和场景的坐标系
- convertPointFromView:
将视图坐标系转成场景坐标系。
- (CGPoint)converPointFromView:(CGPoint)point
参数point:视图坐标系中的一个点返回值这个点在场景坐标系中的位置
论述
在调用该方法之前,场景必须已经被加到视图中了。
- convertPointTOView:
将场景坐标系转成视图坐标系。
- (CGPoint)converPointToView:(CGPoint)point
参数point:场景坐标系中的一个点返回值这个点在视图坐标系中的位置
论述
在调用该方法之前,场景必须已经被加到视图中了。
改变场景的大小
- didChangeSize:
当场景大小发生改变时调用该方法。
- (void)didChangeSize:(CGSize)oldSize
参数oldSize:场景的原大小返回值
论述
这个方法通常会被子类重写。
检测场景的弹出改变。
- willMoveFromView:
该方法会在场景移出视图之前调用。
- (void)willMoveFromView:(SKView *)view
参数view:持有该场景的视图返回值
论述
这个方法通常会被子类重写。
- didMoveToView:
该方法会在场景弹到视图上之后调用。
- (void)didMoveToView:(SKView *)view
参数view:持有该场景的视图返回值
论述
这个方法通常会被子类重写。
执行动画循环
- update:
在场景中动作执行之前需要执行的更新。
- (void)update:(NSTimeInterval)currentTime
参数currentTime:已经过去的时间,保证单调递增返回值
论述
不要直接调用这个方法,当场景加入到视图中,并且不是暂停状态时,它每一帧会被调用一次。你的场景子类应该重写这个方法,并执行一些需要的更新。
- didEvaluateActions
在场景中动作执行之后需要执行的更新。
- (void)didEvaluateActions
论述
不要直接调用这个方法,当场景加入到视图中,并且不是暂停状态时,它每一帧会被调用一次。你的场景子类应该重写这个方法,并执行一些需要的更新。
- didSimulatePhysics
在物理模拟执行之后需要执行的更新。
- (void)didSimulatePhysics
论述
不要直接调用这个方法,当场景加入到视图中,并且不是暂停状态时,它每一帧会被调用一次。你的场景子类应该重写这个方法,并执行一些需要的更新。
属性
查看视图相关属性
anchorPoint
场景原点在视图中的位置。
@property (atomic) CGPoint anchorPoint
论述
指定场景的坐标位置。默认值为(0,0),表示场景在视图矩形的左下角。
scaleMode
定义场景如何映射到视图。
@property (atomic) SKSceneScaleMode scaleMode
论述
场景的大小和弹它出来的视图大小不相同是有可能的。该属性定义了场景如何映射到视图。详细值参见Scene Scaling Modes部分。默认值为SKSceneScaleModeFill。
view
场景所在的视图。只读。
@property (atomic, weak, readonly) SKView *view
论述
要弹出场景,需要调用SKView类的presentScene:方法或者presentScene:transition:方法。
设置场景的背景色
backgroundColor
场景的背景色。
@property (atomic, retain) SKColor *backgroundColor
论述
默认值为一个灰色的颜色值(RGBA0.15,0.15,0.15,1.0)。
改变场景的大小
size
场景的大小。
@property (atomic) CGSize *size
场景中运行的物理世界
physicsWorld
场景中的物理世界。
@property (atomic, readonly) SKPhysicsWorld *physicsWorld
论述
所有的场景自动模拟添加物理体的节点的物理特性。通过这个属性可以获取场景的全局物理属性,比如重力加速度。
常量
决定场景的弹出模式
typedef NS_ENUM(NSInteger,
SKSceneScaleMode){
SKSceneScaleModeFill,
SKSceneScaleModeAspectFill,
SKSceneScaleModeAspectFit,
SKSceneScaleModeResizeFill
}
SKSceneScaleModeFill场景的每个轴独立缩放,场景完全映射到视图中SKSceneScaleModeAspectFill场景中每个轴使用相同的缩放因子,保证视图被完全填充,场景可能被剪裁SKSceneScaleModeAspectFit场景中每个轴使用相同的缩放因子,保证整个场景可见SKSceneScaleModeResizeFill场景不缩放,场景自动调整大小以适应视图
页面更新:2024-04-17
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号