zoukankan      html  css  js  c++  java
  • iOS -- SKScene类

    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 场景不缩放,场景自动调整大小以适应视图
  • 相关阅读:
    mdadm
    RAID磁盘阵列学习笔记
    内存究竟有多快?
    fping
    Intel® RAID Software User’s Guide
    为什么寄存器比内存快?
    OC-Category
    OC-id、构造方法
    OC- @property @synthesize
    OC-点语法
  • 原文地址:https://www.cnblogs.com/mafeng/p/7561676.html
Copyright © 2011-2022 走看看