博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS -- SKPhysicsWorld类
阅读量:6934 次
发布时间:2019-06-27

本文共 2487 字,大约阅读时间需要 8 分钟。

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

转载地址:http://szwnl.baihongyu.com/

你可能感兴趣的文章
回调函数
查看>>
ASCII 码表
查看>>
25个出众的Web表单范例
查看>>
mysql sql语句大全
查看>>
Invoke 和 BeginInvoke 的区别
查看>>
linux系统编程之进程(四):进程退出exit,_exit区别即atexit函数(转载)
查看>>
钉子和小球
查看>>
正则匹配之——引擎匹配原理
查看>>
实现文件上传的多种方法
查看>>
Windows Phone 7 开发常见问题汇总
查看>>
$$ kcptun lede koolshare 科学 油管
查看>>
页面loading效果
查看>>
python sort、sorted
查看>>
openERP笔记,自定义开发模块
查看>>
Java Remote Debug(idea远程调试)
查看>>
使用OAuth2的SSO分析
查看>>
初识jsonp
查看>>
#ZLYD团队第二周项目总结
查看>>
继承映射
查看>>
JSP基础
查看>>