SpriteKit (SKScene)

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 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

该框架后之后解释详细说明。

你可能感兴趣的:(SpriteKit (SKScene))