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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSD硬盘 全盘安全擦除

此文From http://ssd.zol.com.cn/575/5753057.html 在SSD固态硬盘的使用过程中,部分用户可能会碰到计算机意外掉电或死机并强行断电后,系统出现异常,扫描SSD后发现坏块,然后一着急一跺脚甚至想返厂维修。 其实掉电后固态硬盘出现坏…

php中等3秒再跳转,跳转和重定向

页面跳转在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。系统的ThinkController类内置了两个跳转方法success和error,用于页面跳转提示,而且可以支…

2017敏捷沙滩大会:完美软件,测量持续交付,以及探索未来

在英国康沃尔郡举行的2017敏捷沙滩大会上,数百名演讲者和参与者共聚一堂,探讨敏捷和后敏捷领域软件开发方法有哪些最新进展。本次大会最后一个下午的要点包括:交付团队可以通过拥抱精益、迭代和持续的部署方法更快速地实现业务价值&#xff1…

做fzu oj 1045 做减法学到的sprintf()函数

题目 做题一直输不出答案,于是就上网去百度了这题的解题,发现解答十分的简短,而且其中我看见了平时没见过的函数,sprintf()。 于是就百度sprintf()的使用。 如下: 函数功能:把格式化的数据写入某个字符串 函…

动态内存分配及变量存储类别(第二部分)

5. C语言变量的存储类别和生存期 我们知道,变量是有数据类型的,用以说明它占用多大的内存空间,可以进行什么样的操作。除了数据类型,变量还有一个属性,称为“存储类别”。存储类别就是数据在内存中的存放区域。一个正在…

oracle的em能干什么,转载 解决Oracle的EM登录

转载 解决Oracle的EM登录(2011-03-13 20:53:39)标签:杂谈这几天解决了EM无法登录的问题,顺便也把j数据库程序中常出现的ORA_12518错误解决了,有必要总结一下,我最初遇到的情况是这样的:1. 编写java程序访问oracle数据库…

python 回溯法 子集树模板 系列 —— 1、8 皇后问题

问题 88格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 分析 为了简化问题,考虑到8个皇后不同行,则每一行放置一个皇后,每一行的皇后…

Core Java Volume I — 3.6. Strings

3.6. StringsConceptually, Java strings are sequences of Unicode characters(Java的字符串是一个Unicode序列). For example, the string "Java\u2122" consists of the five Unicode characters J, a, v, a, and ?. Java does not have a…

Android实用代码七段(五)

前言 每次分享意味着每次都有进步,本系列以实用为主,欢迎和我分享和推荐好用的代码段~~声明欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com农民伯伯: http://over140.cnblogs.com 正文 1、展开、收起…

oracle 自增1,oracle自增无法从1开始

问题描述我想让XH字段从1开始增加,由于是varchar类型的,所以就用这种方式,但我发现我的数据表中XH字段是从217开始增加的,为什么啊问题出现的环境背景及自己尝试过哪些方法相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)declarej number;i number;begini:1;j:1;for i …

ceph Luminous版手动安装零散记录

1.安装必要的依赖包,关防火墙,向/etc/hosts内添加域名等 2.安装ceph 配置yum源 (如果嫌慢,可以配置cachedir/home/yum/$basearch/$releasever和keepcache1两个参数,在第一次安装时将安装包下载到本地做成yum源,给后面的…

C#最简单最完整的webservice实例

我做java,但最近接触crm所以必须研究一下C#中的webservice以备后用,其实就是个新手,哈哈,这个实例是我在参考了网上诸多不完整的例子的情况下,自己摸索完成的。期间遇到过一系列的棘手的问题,经过个人努力终…

2015 UESTC 数据结构专题G题 秋实大哥去打工 单调栈

秋实大哥去打工 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59Description 天行健,君子以自强不息。地势坤,君子以厚德载物。天天过节的秋实大哥又要过节了,于是他要给心爱的妹子买礼物。但由…

oracle怎么通过sid确定表名,如何获取Oracle的SID列表

更好的方法是,如果您有权访问主机并且Oracle安装使用以下命令:lsnrctl status。这适用于Unix,Linux和Windows机器。 status命令将显示所有监听器(及其相关的SID)。C:\>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Pr…

51 Nod 1007 正整数分组【类01背包】

1007 正整数分组 基准时间限制:1 秒 空间限制:131072 KB 分值: 10难度:2级算法题将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1…

YTU 2924: 文件操作--二进制文件读入

2924: 文件操作--二进制文件读入 时间限制: 1 Sec 内存限制: 128 MB提交: 58 解决: 20题目描述 现有100名学生的姓名(name)、学号(num)、英语(English)、数学(Math)、语文(Chinese)成绩存储在一个二进制文件student.dic中(姓名用char[20],学号和各科成绩用int存储…

oracle 9.2.0.4,CentOS 4.7 安装Oracle 9.2.0.4的一些问题

#vi/etc/sysconfig/iptables,增加如下-A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT-A INPUT -p tcp -s 0/0 -d 0/0 --dport telnet -j ACCEPT-A INPUT -p tcp -s 0/0 -d 0/0 --dport ssh -j ACCEPT-A INPUT -p tcp -s 0/0 -d 0/0 --dport login -j ACCEPT-…

《机电传动控制》----学习笔记六

《机电传动控制》与其他学科的联系 1、《液压传动与气压传动》中提到的液压控制阀中的电液伺服阀与《机电传动控制》中的控制电动机里的伺服电机有着密切的联系,都要求我们对伺服系统有着很好的理解。 2、《电路理论》中电机作为独立的一章,讲到了用向量…

Oracle Imp and Exp (导入和导出) 数据 工具使用

Oracle 提供两个工具imp.exe 和exp.exe分别用于导入和导出数据。这两个工具位于Oracle_home/bin目录下。 导入数据exp 1 将数据库ATSTestDB完全导出,用户名system 密码123456 导出到c:\export.dmp中 exp system/123456ATSTestDB filec:\export.dmp fully 其中ATSTestDB为数据库…

[Oracle][Corruption]究竟哪些检查影响到 V$DATABASE_BLOCK_CORRUPTION

根据 471716.1,11g 之后,下列动作如果遇到坏块,都会输出记录到 V$DATABASE_BLOCK_CORRUPTION。- Analyze table .. Validate structure- CTAS(Create table as Select)- Export另外,这些也会记录的:RMAN > Vali…