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属性交叠。
SKPhysicsWorld类的更多相关文章
- iOS -- SKPhysicsWorld类
SKPhysicsWorld类 继承自 NSObject 符合 NSCodingNSObject(NSObject) 框架 /System/Library/Frameworks/SpriteKit. ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- SKScene类
继承自 SKEffectNode:SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) ...
- iOS -- SKScene类
SKScene类 继承自 SKEffectNode:SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject ...
- C++ 可配置的类工厂
项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...
- Android请求网络共通类——Hi_博客 Android App 开发笔记
今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core
背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...
- .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类
.NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...
随机推荐
- (转)织梦DedeCMSv5.7安装体验数据包的方法
1.先安装一个全新的DedeCMS v5.7 GBK系统,这里以DedeCMS v5.7 GBK系统为例. 2.下载数据体验包: 如果是gbk则下载:http://www.dedecms.com/de ...
- 黑马程序员-hashtable
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列 ...
- 安装php时,make步骤报错make: *** [sapi/fpm/php-fpm] Error 1
安装PHP过程中,make步骤报错:(集中网络上各种解决方法) (1)-liconv -o sapi/fpm/php-fpm /usr/bin/ld: cannot find -liconv coll ...
- app发布流程详解
https://developer.apple.com 1. 点击 Member Center 2. 创建应用ID 3. 创建项目 4. 在AppStore创建对应的应用 5. 创建授权文件 6. 配 ...
- gui线程
package thread; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.Acti ...
- 使用C++11 实现的线程池
最近打算做一个服务器端程序,每来一个客户端请求新开一个线程进行处理.在网上查了一些资料后,准备使用线程池来做这个东西.使用C++11新的库处理想线程问题比以前简单了许多,在网上找到一份线程池的实现,h ...
- rhel安装eclipse
smb --> IDE --> 环境gcc(开发c) g++(开发c++)c++操作linux --> sqlite数据库linux平台自带sqlite数据库 基本SQL语言划分:D ...
- C++中public、protected、private
C++中public.protected.private 第一:private, public, protected 访问标号的访问范围. private:只能由 1.该类中的函数. 2.其友元函数 ...
- 【USACO 3.2.4】饲料调配
[描述] 农夫约翰从来只用调配得最好的饲料来喂他的奶牛.饲料用三种原料调配成:大麦,燕麦和小麦.他知道自己的饲料精确的配比,在市场上是买不到这样的饲料的.他只好购买其他三种混合饲料(同样都由三种麦子组 ...
- eval函数:\的应用
<?php $string = "beautiful"; $time = "winter"; $str = 'This is a $string $tim ...