SKPhysicsWorld类
继承自 | 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属性交叠。