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 | 场景不缩放,场景自动调整大小以适应视图 |
iOS -- SKScene类的更多相关文章
- IOS 公共类-MyDateUtil 日期处理Util
IOS 公共类-MyDateUtil 日期处理Util 此为处理日期的公共类.适用IOS6+ .h文件: #import <Foundation/Foundation.h> //适用 IO ...
- IOS 公共类-MyMBProgressUtil Progress显示
IOS 公共类-MyMBProgressUtil Progress显示 此公共类用于显示提示框,对MBProgress的进一步封装.可以看下面的代码 接口: @interface MyMBProgre ...
- 一位iOS教育类应用开发者是如何赚到60多万美元?
注:伯乐在线12月19日在@程序员的那些事 微博推荐了此文的英文原文,非常感谢@dotSlash 的翻译. 转眼距我写<我如何在iOS教育类应用中赚到20万美元>这篇博文已经一年多了,它 ...
- SKScene类
继承自 SKEffectNode:SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) ...
- iOS --SKView类
SKView类 继承自 UIView:UIResponder:NSObject 符合 NSCoding(UIView)UIAppearance(UIView)UIAppearanceContainer ...
- iOS -- SKPhysicsWorld类
SKPhysicsWorld类 继承自 NSObject 符合 NSCodingNSObject(NSObject) 框架 /System/Library/Frameworks/SpriteKit. ...
- iOS系类教程之用instruments来检验你的app
比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程.这里是原文 入门 为了节省大家的时间,提供一个演示的D ...
- iOS方法类:CGAffineTransform的使用大概
CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放.旋转和平移操作: 另称放射变换矩阵,可参照线性代数的矩阵实现方式0. ...
- 006 [翻译] Haneke(一个Swfit iOS缓存类)
Github项目地址:https://github.com/Haneke/HanekeSwift Haneke是一个用swift写成的轻量级iOS类,以简单好用著称(design-decisions- ...
随机推荐
- Freemarker的循环通过assign指令引入计数变量
这里是一个jeecms框架的前台的一个内容列表集,因为不是每个内容子项符合要求,而且需要统计符合要求的子项个数,仿照java的for循环,需要在循环前声明一个计数变量,这就需要使用Freemaker的 ...
- java启动的一些参数
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremo ...
- 51nod 1010 只包含因子2 3 5的数 二分答案
1010 只包含因子2 3 5的数 K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 > ...
- 常用类--Date日期类,SimpleDateFormat日期格式类,Calendar日历类,Math数学工具类,Random随机数类
Date日期类 Date表示特定的时间,精确到毫秒; 构造方法: public Data() public Date(long date) 常用方法: public long getTime() pu ...
- struts2和spring的两种整合方式
首先,来看看如何让Spring 来管理Action. 在struts.xml中加入 <constant name="struts.objectFactory" value=& ...
- Android中如何截取字符串中某个字符之前或之后的字符串
代码改变世界 Android中如何截取字符串中某个字符之前或之后的字符串 //截取#之前的字符串 String str = "sdfs#d"; str.substring(0, s ...
- [luoguP3302] [SDOI2013]森林(主席树 + 启发式合并 + lca)
传送门 显然树上第k大直接主席树 如果连边的话,我们重构小的那一棵,连到另一棵上. 说起来简单,调了我一晚上. 总的来说3个错误: 1.离散化写错位置写到了后面 2."="写成了& ...
- bzoj 1061~1065【Noi2008】解题报告
这次Noi好像格外喜欢树形DpQAQ P.S.好像这次的题都与图有关QAQ bzoj1061[Noi2008]志愿者招募:上下界可行最小费用流 bzoj1062[Noi2008]糖果雨:数形结合&am ...
- 【CTSC2010】产品销售(bzoj1920)
数据结构优化网络流…… 重新定义一下题目的各种条件: 第 $i$ 天能生产 $a_i$ 个物品: 第 $i$ 天有 $b_i$ 个物品的需求: 每存储一天物品(把订单提前一天)需要 $c_i$ 的花费 ...
- net6:创建Membership对象数据源的代码
原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] 添加了一个db的类作为了对象数据源: using System;using System.Data;using S ...