继承自 NSObject
符合 NSCoding
NSObject(NSObject)
框架  /System/Library/Frameworks/SpriteKit.framework
可用性 可用于iOS 7.0或者更晚的版本
声明于 SKPhysicsWorld.h
参考指南 Sprite Kit Progamming Guide

概览

重要提示:这是一个初步的API或者开发技术文档。虽然已经审阅了本文档的技术准确性,但是它不是最终的版本。本机密信息仅适用于苹果开发者计划的注册会员。苹果提供这些机密信息来帮助你采用这些技术和编程接口。此信息如果有变更,根据本文档实现的软件应使用操作系统软件和最终文档测试。新版本的文档可能会拥有新的API或者技术。

SKPhysicsWorld实例模拟碰撞和其他物理属性。你不需要直接创建SKPhysicsWorld属性,你可以查看SKScene的physicsWorld属性。

SKPhysicsWorld实例可以允许你执行以下操作:

模拟一个全局的属性,比如重力
创建一个两个物理体之间的联合
设置一个接收两个相连物理体之间消息的代理
判断物理体之间的点、矩形、射线相交

方法

将物理体联合在一起。

- addJoint:

向物理世界中添加一个联合。

- (void)addJoint:(SKPhysicsJoint *)joint

参数 joint:待添加的联合
返回值  

论述

一个联合要产生作用,它必须要添加到物理世界中。

- removeAllJonits

移除物理世界中的所有联合。

- (void)removeAllJoints

- removeJonit:

移除物理世界中的指定联合。

- (void)removeJoint:(SKPhysicsJoint *)joint

参数 joint:待移除的联合
返回值  

查找物理世界中的物理体

- bodyAlongRayStart:end:

查找与射线相交的第一个物理体。

- (SKPhysicsBody *)bodyAlongRayStart:(CGPoint)start end:(CGPoint)end

参数 start:射线的起始点
end:射线的结束点
返回值 与射线相交的第一个物理体,若没有,则返回nil
- bodyAtPoint:

查找包含某个点的第一个物理体。

- (SKPhysicsBody *)bodyAtPoint:(CGPoint)point

参数 point:场景坐标系中的一个点
返回值 包含这个点的第一个物理体,若没有,则返回nil
- bodyInRect

查找与指定矩形相交的第一个物理体。

- (SKPhysicsBody *)bodyInRect:(CGRect)rect

参数 rect:场景坐标系中的一个矩形
返回值 与这个矩形相交的第一个物理体,若没有,则返回nil
- enumerateBodiesAlongRayStart:end:usingBlock:

枚举与射线相交的所有物理体。

- (void)enumerateBodiesAlongRayStart:(CGPoint)start end:(CGPoint)end usingBlock:(void(^)(SKPhysicsBody *body, CGPoint poing, CGpint normal, BOOL *stop))block

参数 start:射线的起始点
end:射线的结束点
block:一个语法块,每一个与射线相交的物理体都会触发
body:与射线相交的物理体
point:射线与物理体的交点
normal:相交处的法线向量
stop:一个布尔值,用以终止枚举
返回值  
- enumerateBodiesAtPoint:usingBlock:

枚举包含某个点的所有物理体。

- (void)enumerateBodiesAtPoint:(CGPoint)point usingBlock:(void(^)(SKPhysicsBody *body, BOOL *stop))block

参数 point:场景坐标系中的点
block:一个语法块,每一个包含该点的物理体都会触发
body:射线相交的物理体
stop:一个布尔值,用以终止枚举
返回值  
- enumerateBodiesInRect:usingBlock:

枚举与指定矩形相交的所有物理体。

- (void)enumerateBodiesInRect:(CGRect)rect usingBlock:(void(^)(SKPhysicsBody *body, BOOL *stop))block

参数 rect:场景坐标系中的矩形
block:一个语法块,每一个与该矩形相交的物理体都会触发
body:与该矩形相交的物理体
stop:一个布尔值,用以终止枚举
返回值  

属性

模拟物理世界

gravity

一个向量,指定物理世界的重力加速度。

@property(atomic) CGPoint gravity

论述

这个属性的单位是米每秒,默认值为(0.0,-9.8),代表了地球重力加速度。

speed

模拟的执行速率。

@property(atomic)CGFloat speed

论述

默认值为1.0,表示模拟以正常速率执行。一个不同于默认值的值将改变模拟的执行速率。例如,一个2.0的值,表示模拟将以两倍速率执行。若只为0.0,则表示暂定模拟。

在物理世界检测碰撞。

contactDelegate

一个代理,当两个连在一起的物理体进来时,这个代理将被调用。

@property(atomic, assign) id<SKPhysicsContactDelegate> contactDelegate

论述

当两个物理体交叠时,连接就会被创建。一个拥有contactTestBitMask属性的物理体与另一个物理体的categoryBitMask属性交叠。

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

  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. iOS -- SKScene类

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

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

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

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

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

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

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

  8. iOS 在类实现定义中声明成员变量的怪异方式

    WebGL 规范(WebGL Specification) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&quo ...

  9. iOS 日历类(NSCalendar)

    对于时间的操作在开发中很常见,但有时候我们需要获取到一年后的时间,或者一周后的时间.靠通过秒数计算是不行的.那就牵扯到另外一个日历类(NSCalendar).下面先简单看一下 NSDate let d ...

随机推荐

  1. BZOJ 4368: [IOI2015]boxes纪念品盒

    三种路径,左边出去左边回来,右边出去右边回来,绕一圈 绕一圈的路径最多出现一次 那么绕一圈的路径覆盖的点一定是左边半圈的右边和右边半圈的左边 枚举绕一圈的路径的起始点(一定要枚举,这一步不能贪心),更 ...

  2. Python虚拟机之异常控制流(五)

    Python中的异常控制语义结构 在Python虚拟机之异常控制流(四)这一章中,我们考察了Python的异常在虚拟机中的级别上是什么东西,抛出异常这个动作在虚拟机的级别上对应的行为,最后,我们还剖析 ...

  3. JSP 页面 jstl 时间戳 long型转时间

    转载http://www.cnblogs.com/gmq-sh/p/5528989.html

  4. Python Cdn平台文件md5验证

    第一步 先用脚本实现基本的md5验证 1.python如何实现文件的下载 方法一: 使用 urllib 模块提供的 urlretrieve() 函数.urlretrieve() 方法直接将远程数据下载 ...

  5. [每日App一]QQ主题要逆天!轻轻松松月入30万!

    听从吾师秦刚(微信或QQ:1111884)酋长的建议,谋哥(微信viyi88)我开始新的征程,每日更新一篇干货文章(要坚持啊!否则被酋长鄙视了). 好了,废话不多说,今天我给大家揭秘一个你从来想也木有 ...

  6. [POJ 1007] DNA Sorting C++解题

        DNA Sorting Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 77786   Accepted: 31201 ...

  7. python - 数据驱动测试 - ddt

    # -*- coding:utf-8 -*- ''' @project: jiaxy @author: Jimmy @file: study_ddt.py @ide: PyCharm Communit ...

  8. [Err] 1022 - Can't write; duplicate key in table '#sql-1500_26'

        今天用powerdesigner修改了一些外键关系,有两个外键的名字取一样的,忘记改了.然后在用navicat运行sql文件时,报出[Err] 1022 - Can't write; dupl ...

  9. ACM程序设计选修课——1058: Lucky Sequence(思考)

    1058: Lucky Sequence Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 52  Solved: 6 [Submit][Status][ ...

  10. 刷题总结——寻宝游戏(bzoj3991 dfs序)

    题目: Description 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达.游戏开始时,玩家可以任意选择一个村庄,瞬间转移到这个村庄 ...