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 场景不缩放,场景自动调整大小以适应视图

iOS -- SKScene类的更多相关文章

  1. IOS 公共类-MyDateUtil 日期处理Util

    IOS 公共类-MyDateUtil 日期处理Util 此为处理日期的公共类.适用IOS6+ .h文件: #import <Foundation/Foundation.h> //适用 IO ...

  2. IOS 公共类-MyMBProgressUtil Progress显示

    IOS 公共类-MyMBProgressUtil Progress显示 此公共类用于显示提示框,对MBProgress的进一步封装.可以看下面的代码 接口: @interface MyMBProgre ...

  3. 一位iOS教育类应用开发者是如何赚到60多万美元?

    注:伯乐在线12月19日在@程序员的那些事 微博推荐了此文的英文原文,非常感谢@dotSlash 的翻译.  转眼距我写<我如何在iOS教育类应用中赚到20万美元>这篇博文已经一年多了,它 ...

  4. SKScene类

    继承自 SKEffectNode:SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) ...

  5. iOS --SKView类

    SKView类 继承自 UIView:UIResponder:NSObject 符合 NSCoding(UIView)UIAppearance(UIView)UIAppearanceContainer ...

  6. iOS -- SKPhysicsWorld类

    SKPhysicsWorld类 继承自 NSObject 符合 NSCodingNSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit. ...

  7. iOS系类教程之用instruments来检验你的app

    比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程.这里是原文   入门 为了节省大家的时间,提供一个演示的D ...

  8. iOS方法类:CGAffineTransform的使用大概

    CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放.旋转和平移操作: 另称放射变换矩阵,可参照线性代数的矩阵实现方式0. ...

  9. 006 [翻译] Haneke(一个Swfit iOS缓存类)

    Github项目地址:https://github.com/Haneke/HanekeSwift Haneke是一个用swift写成的轻量级iOS类,以简单好用著称(design-decisions- ...

随机推荐

  1. HBase0.94.2-cdh4.2.0需求评估测试报告1.0之四

    第二组:文件存储读过程记录 第一组:一个列,四个分区,随机ID 测试列和分区 测试程序或命令 导入文件大小(Mb) 导入文件个数(个) 是否触发flush事件(布尔) 是否触发compact事件(布尔 ...

  2. WPF触控程序开发(二)——整理的一些问题

    上一篇(WPF触控程序开发)介绍了几个比较不错的资源,比较基础.等到自己真正使用它们时,问题就来了,现把我遇到的几个问题罗列下,大家如有遇到其他问题或者有什么好的方法还望赐教. 问题1.如何获取触控点 ...

  3. Android开发工具——Android Studio调试技巧

    .调试的两种方式 到目前,调试的相关基础我们已经介绍完了,但是不少同学对Android Studio中这两个按钮感到困惑:Debug和Attach process. 这里我们就简单介绍一下这两者的区别 ...

  4. HDU 3861 The King’s Problem 强连通分量 最小路径覆盖

    先找出强连通分量缩点,然后就是最小路径覆盖. 构造一个二分图,把每个点\(i\)拆成两个点\(X_i,Y_i\). 对于原图中的边\(u \to v\),在二分图添加一条边\(X_u \to Y_v\ ...

  5. NAT(地址转换技术)详解(转载)

    作者:逃离地球的小小呆 来源:CSDN 原文:https://blog.csdn.net/gui951753/article/details/79593307版权声明:本文为博主原创文章,转载请附上博 ...

  6. OO第四单元博客

    第四单元博客 这个单元的作业,emmmm助教们做的工作还是一如既往的多,我们只负责添一添代码,最后一次作业了,感谢各位助教和老师,同时也希望我能顺利通过这最后一关. 架构设计 第一次作业架构展示 第一 ...

  7. C#通过http post方式调用需要证书的webservice

    前一段时间做花旗银行的项目,用到花旗的接口是websevice,由于很多原因直接在项目中引用webservice不成功,于是就用了http post方式请求,把请求信息(xml格式)组装之后发送到服务 ...

  8. 【LeetCode】Balanced Binary Tree(平衡二叉树)

    这道题是LeetCode里的第110道题. 题目要求: 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. ...

  9. best coder #35-01<组合数学 || 概率数学>

    问题描述 一个盒子里有n个黑球和m个白球.现在DZY每次随机从盒子里取走一个球,取了n+m次后,刚好取完.DZY用这种奇怪的方法生成了一个随机的01串S[1⋯(n+m)].如果DZY第i次取出的球是黑 ...

  10. background-position-x和background-position-y的兼容性问题

    一.语法: background-position-x : length | left | center | right background-position-y : length | left | ...