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 | 场景不缩放,场景自动调整大小以适应视图 |
SKScene类的更多相关文章
- iOS -- SKScene类
SKScene类 继承自 SKEffectNode:SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- Sprite Kit编程指南(1)-深入Sprite Kit
深入Sprite Kit 学习Sprite Kit最好的方法是在实践中观察它.此示例创建一对场景和各自的动画内容.通过这个例子,你将学习使用Sprite Kit内容的一些基础技术,包括: · ...
- Sprite Kit编程指南中文版下载
下载地址:http://download.csdn.net/detail/xin814/6032573 关于Sprite Kit 重要提示: 这是API或开发技术的一个初版文档.虽然本文档的技术准确 ...
- IOS7学习之路三(UISpriteKit游戏开发SKNode)
ios7新添加了自己的游戏开发框架UISpriteKit ,可以用此做一些2D的小游戏, 今天学习了一下SKNode的知识做一下笔记,以便以后查阅. 1.SKNode继承自UIResponder. 2 ...
- SpriteKit:检测当新场景显示以后
Detecting When a New Scene Is Presented Sprite Kit在SKScene类中提供2个可以重载的方法用来检测当一个场景过渡出去或过渡进来的时候. 第一个方法是 ...
- Xcode的playground中对于SpriteKit物理对象的更新为何无效
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了便于SpriteKit中物理行为的调试,我们可以借助于Xc ...
- iOS Sprite Kit教程之真机测试以及场景的添加与展示
iOS Sprite Kit教程之真机测试以及场景的添加与展示 IOS实现真机测试 在进行真机测试之前,首先需要确保设备已经连在了Mac(或者Mac虚拟机)上,在第1.9.1小节开始,设备就一直连接在 ...
- 一、MegaCli命令介绍
一.MegaCli命令介绍 MegaCli是一款管理维护硬件RAID软件,可以用来查看raid信息等MegaCli 的Media Error Count: 0 Other Error Count: 0 ...
随机推荐
- NHibernate执行原生带sum的sql
可以自行查出想要的字段,并且返回的是model类型,可以点出所有的字段. 但是select 后面的字段名 必须有xml的字段名一模一样. ISession iSession = null; strin ...
- Iframe之间及iframe与父窗体之间值的传递
方法一:ScriptManager.RegisterClientScriptBlock(this,typeof(Page), "NoInformation", "wind ...
- configSections(配置文件)
转载:http://www.cnblogs.com/jhxk/articles/1609182.html 由于最近一个项目的数据库变动比较频繁, 为了减少数据层的负担, 打算采用.net的MVC框架, ...
- (转)解析PHP中ob_start()函数的用法
本篇文章是对PHP中ob_start()函数的用法进行了详细的分析介绍,需要的朋友参考下 ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行 ...
- Swift - 32 - 函数类型
//: Playground - noun: a place where people can play import UIKit func add(a:Int, b:Int) -> Int { ...
- 四、C#方法和参数
方法是一种组合一系列语句以执行一个特定操作或计算一个特殊结果的方式. 它能够为构成程序的语句提供更好的结构和组织. 在面向对象的语言中,方法总是和类关联在一起的,我们用类将相关的方法分为一组. 方 ...
- MYSQL :逗号分隔串表,分解成竖表
DROP TEMPORARY TABLE IF EXISTS Temp_Num ; CREATE TEMPORARY TABLE Temp_Num ( xh INT PRIMARY KEY ); -- ...
- DeDe内容调用img
文章内容页调用缩略图方法如下两种.第一种没有大小设置.原图显示.第二种.可以设大小, {dede:field.image/} <img src="{dede:field.litpic ...
- PHP文章管理
功能说明: 文章的基本操作:添加,修改,锁定,解锁,推荐,删除等待 并有强大功能的搜索,评论,推荐给朋友等功能,并对安全性进行着重加强,漂亮的界面人性化的设计. 主要文件列表: setup.p ...
- 大数据学习之测试hdfs和mapreduce(二)
上篇已经搭建好环境,本篇主要测试hadoop中的hdfs和mapreduce功能. 首先填坑:启动环境时发现DataNode启动不了.查看日志 从日志中可以看出,原因是因为datanode的clust ...