SKScene 一个组织所有活动 SpriteKit 内容的对象。一个SKScene
对象代表 SpriteKit 中的内容场景。场景是 SpriteKit 节点 ( SKNode)树中的根节点。这些节点提供场景动画和渲染的内容以供显示。场景需要放置在SKView才能被呈现。
初始化方法
- (instancetype)initWithSize:(CGSize)size;
+ (instancetype)sceneWithSize:(CGSize)size;
拉伸内容以适应视图
@property (nonatomic) SKSceneScaleMode scaleMode;//定义场景如何映射到呈现它的视图的设置。
配置视口
@property (nonatomic, weak, nullable) SKCameraNode *camera;//相机节点
@property (nonatomic) CGPoint anchorPoint;原点坐标
响应加载和调整大小事件
- (void)sceneDidLoad;
- (void)didChangeSize:(CGSize)oldSize;
- (void)didMoveToView:(SKView *)view;
- (void)willMoveFromView:(SKView *)view;
响应帧周期事件
- (void)update:(NSTimeInterval)currentTime;//执行更新
//以下方法不可以主动调用
- (void)didEvaluateActions;
- (void)didSimulatePhysics;
- (void)didApplyConstraints;
- (void)didFinishUpdate;
代理
delegate
//代理方法
- (void)update:(NSTimeInterval)currentTime forScene:(SKScene *)scene;//告诉您执行任何特定于应用程序的逻辑来更新您的场景。
- (void)didEvaluateActionsForScene:(SKScene *)scene;//评估场景动作后执行任何必要的逻辑。
- (void)didSimulatePhysicsForScene:(SKScene *)scene;//告诉您在执行物理模拟后执行任何必要的逻辑。
- (void)didApplyConstraintsForScene:(SKScene *)scene;//告诉您在应用约束后执行任何必要的逻辑。
- (void)didFinishUpdateForScene:(SKScene *)scene;//告诉您在场景完成处理动画所需的所有步骤后执行任何必要的逻辑。
设置背景外观
@property (nonatomic, retain) SKColor *backgroundColor;//背景颜色
配置物理属性
@property (nonatomic, readonly) SKPhysicsWorld *physicsWorld;//物理世界模拟
添加位置音频
@property (nonatomic, weak, nullable) SKNode *listener;//用于确定场景中位置音频的听者位置的节点。 声音的位置
@property (nonatomic, retain, readonly) AVAudioEngine *audioEngine;//用于从场景中包含的音频节点播放音频的 AVFoundation 音频引擎。
坐标系之间的转换
- (CGPoint)convertPointFromView:(CGPoint)point;//将点从视图坐标转换为场景坐标。
- (CGPoint)convertPointToView:(CGPoint)point;//将点从场景坐标转换为视图坐标。
一、SKPhysicsWorld
配置物理世界
@property (nonatomic) CGVector gravity;//重力
@property (nonatomic) CGFloat speed;//时间流速
用关节连接物理体
- (void)addJoint:(SKPhysicsJoint *)joint;//添加关节
- (void)removeJoint:(SKPhysicsJoint *)joint;//移除关节
- (void)removeAllJoints;//移除所有
检测碰撞
@property (nonatomic, assign, nullable) id<SKPhysicsContactDelegate> contactDelegate;//当两个物理体相互接触时调用的委托。
//代理方法
- (void)didBeginContact:(SKPhysicsContact *)contact;
- (void)didEndContact:(SKPhysicsContact *)contact;
在场景中搜索物理体
- (nullable SKPhysicsBody *)bodyAtPoint:(CGPoint)point;//搜索包含点的第一个物理体。
- (nullable SKPhysicsBody *)bodyInRect:(CGRect)rect;//搜索与指定矩形相交的第一个物理体。
- (nullable SKPhysicsBody *)bodyAlongRayStart:(CGPoint)start end:(CGPoint)end;//搜索与射线相交的第一个物理体。
- (void)enumerateBodiesAtPoint:(CGPoint)point usingBlock:(void (^)(SKPhysicsBody *body, BOOL *stop))block;//枚举场景中包含一个点的所有物理体。
- (void)enumerateBodiesInRect:(CGRect)rect usingBlock:(void (^)(SKPhysicsBody *body, BOOL *stop))block;//枚举场景中与指定矩形相交的所有物理实体
- (void)enumerateBodiesAlongRayStart:(CGPoint)start end:(CGPoint)end
usingBlock:(void (^)(SKPhysicsBody *body, CGPoint point, CGVector normal, BOOL *stop))block;//枚举场景中与射线相交的所有物理体。
采样物理场
- (vector_float3)sampleFieldsAt:(vector_float3)position;//对场景中的所有场节点进行采样,并返回它们在该点的力的总和。
二、AVAudioEngine
该框架后之后解释详细说明。
网友评论