iOS Sprite Kit最新特性Physics Field虚拟物理场Swift測试

在WWDC2014上,Sprite Kit又有了非常多新的提升!

当中一个非常有意思的东西就是Physics Field!也就是物理场!

这意味着我们在Sprite kit上编写虚拟物理场的游戏将变得非常easy!

这里我依据WWDC2014上What‘s new in Sprite kit的官方视频上的DEMO,

用Swift语言自己做了一个Demo。

截图例如以下:

先放上GitHub链接:

https://github.com/songrotek/PhysicsFieldsWorld.git

我另外录制了效果视频大家能够先一睹为快:

http://v.youku.com/v_show/id_XNzI2MzUzNzYw.html

以下介绍一下Physics Field!

1. 整体情况

Sprite Kit的物理场Physics Field一共同拥有十个:

enum FieldType{

case LinearGravityField  // 线性重力场

case RadialGravityField  // 放射重力场

case DragField  // 阻力场

case VortexField  // 涡流场

case VelocityField // 速度场

case NoiseField  // 噪声场

case TurbulenceField  //紊乱场

case SpringField // 弹簧场

case ElectricField // 电子场

case MagneticField // 磁场

}

2.场的通用參数

那么全部类型的场都在SKFieldNode这个类中进行创建和设置!

不管是什么类型的场,都有一些通用的參数设置。例如以下

// 场的影响区域,超出区域的物体不受场影响,默认是无限

var region: SKRegion!

// 场强,默认是1

var strength: CFloat

// 场的衰减指数,用来计算某个距离的作用力大小,从最小半径開始计算。默认是0

var falloff: CFloat

// 场的最小影响半径,默认是一个非常小的数

var minimumRadius: CFloat

// 假设enabled,则场起作用默认是true(在Swift下貌似不太好使,预计beta问题

var enabled: Bool

// 场的排他性,假设是true,则其它场无法作用在本场region范围。假设有两个场的影响范围重合,则无法推断哪个场作用

var exclusive: Bool

// 场的作用物体类别,默认是all

@see SKPhysicsBody.fieldBitMask

@see SKEmitterNode.fieldBitMask

var categoryBitMask: UInt32

3.场的创建

举例创建弹簧场:

let springField = SKFieldNode.springField()

springField.strength = 0.05

springField.falloff = -5

springField.position = fieldCenter

springField.name = "SpringField"

addChild(springField)

其它场一样的方式,就是參数的设置依据详细须要不一样

4.每种场!

4.1 线性场Linear Gravity Field

就是符合牛顿第二定律 F=ma

用它能够制造各种方向的重力,当然用physics world的gravity也能够设置,但这个场能够设置范围。

4.2 放射重力场 Radial Gravity Field

要模拟一下月球绕着地球转就得用这个,重力场在一个点上。

4.3 阻力场 Drag Field

在这个场就像一个物体运动遇到摩擦要减速,摩擦力取决于物体的速度

4.4 涡流场 Vortex Field

这个场能够用来制作龙卷风的效果,场的力绕着中心转,假设strength为正就是逆时针,假设为负就是顺时针

4.5 噪声场 Noise Field 和 紊乱场 Turbulence Field

噪声场就是每一个位置受力情况随机,有个smoothness參数来调整噪声力的平滑程度

紊乱场合噪声场非常接近,但对物体的影响较小

4.6 弹簧场 Spring Field

能够使物体像连接到了场中心的弹簧,会在场中心来回移动

4.7 速度场

须要加入一个SKTexture纹理,由纹理确定每一个场位置点的力方向。

能够实现的效果就是比方弄了一条河的速度场,那么一个物体放在河中就能沿着河流移动

4.8 电场Electric Field 和 磁场 Magnetic Field

就是洛伦茨力F=q(E * VB) ,当中qE是电场力,qVB是磁场力

为了实现电场和磁场的模拟,Sprite Kit的PhysicsBody中加入了Charge也就是带电量。

但眼下就我个人实验,在Swift下并没能实现电磁场的模拟,等待Apple的完好吧

5 小结

Physics Field是个非常酷的特性,值得掌握使用,非常方便!

【注:本文为原创文章,如需转载,请注明出处,来自songrotek的blog】

iOS Sprite Kit最新特性Physics Field虚拟物理场Swift測试

时间: 2024-10-24 13:07:54

iOS Sprite Kit最新特性Physics Field虚拟物理场Swift測试的相关文章

iOS Sprite Kit最新特性Physics Field虚拟物理场Swift测试

在WWDC2014上,Sprite Kit又有了很多新的提升! 其中一个很有意思的东西就是Physics Field!也就是物理场! 这意味着我们在Sprite kit上编写虚拟物理场的游戏将变得非常简单! 这里我根据WWDC2014上What's new in Sprite kit的官方视频上的DEMO, 用Swift语言自己做了一个Demo. 截图如下: 先放上GitHub链接: https://github.com/songrotek/PhysicsFieldsWorld.git 我另外录

iOS Sprite Kit教程之xcode安装以及苹果帐号绑定

iOS Sprite Kit教程之xcode安装以及苹果帐号绑定 其他的站点上下载安装Xcode 有时候,应用商店下载较慢,所以用户也能够选择从其它站点下载Xcode安装文件.以下解说这样的Xcode的安装步骤: (1)双击下载的Xcode软件,弹出正在打开此软件的对话框,如图1.26所看到的. (2)打开该软件后,就会弹出Xcode对话框,如图1.27所看到的. 图1.26  操作步骤1                                     图1.27  操作步骤2 (3)将

iOS Sprite Kit教程之编敲代码以及Xcode的介绍

iOS Sprite Kit教程之编敲代码以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由非常多的文件组成,比如代码文件.资源文件等.Xcode会帮助开发人员对这些文件进行管理.所以,Xcode的界面也比較复杂,如图1.40所看到的. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 图

iOS Sprite Kit教程之场景的切换

iOS Sprite Kit教程之场景的切换 Sprite Kit中切换场景 每一个场景都不是单独存在的.玩家可以从一个场景中切换到另外一个场景中.本小节,我们来讲解场景切换.在每一个游戏中都会使用到场景与场景的切换功能,例如,在街机原始人游戏中,选择关卡这一场景中,可以看到有4关,这四关分别代表了4个场景,如图2.20所示. 图2.20  街机原始的关卡选择 当玩家选择第一关时,就会由选择关卡的场景跳转到第一关的场景中,如图2.21所示. 图2.21  第一关的场景 当玩家选择第二关时,就会由

iOS Sprite Kit教程之真机测试以及场景的添加与展示

iOS Sprite Kit教程之真机测试以及场景的添加与展示 IOS实现真机测试 在进行真机测试之前,首先需要确保设备已经连在了Mac(或者Mac虚拟机)上,在第1.9.1小节开始,设备就一直连接在Mac(或者Mac虚拟机)上,并且此设备就是注册过的.打开创建的项目,在运行按钮一栏中,将程序运行的设备设置为真机的名称.它会自动加载到"选择程序运行的设备"这一项中,如图1.102所示.单击运行按钮,就可以看到应用程序在真机上运行了. 图1.102  设置设备 Sprite Kit的场景

iOS Sprite Kit教程之使用帮助文档以及调试程序

iOS Sprite Kit教程之使用帮助文档以及调试程序 IOS中使用帮助文档 在编写代码的时候,可能会遇到很多的方法.如果开发者对这些方法的功能,以及参数不是很了解,就可以使用帮助文档.那么帮助文本该如何打开以及如何查找相关的内容呢?以下将为你解决这些问题. 1.打开帮助文档 要使用帮助文本,必须要对其进行打开.选择Help|Documentation and API Reference命令,如图1.73所示,就可以打开了,打开后的帮助文档如图1.74所示.   图1.73  打开帮助文档

iOS Sprite Kit教程之申请和下载证书

iOS Sprite Kit教程之申请和下载证书 模拟器虽然可以实现真机上的一些功能,但是它是有局限的.例如,在模拟器上没有重力感应.相机机等.如果想要进行此方面的游戏的开发,进行程序测试时,模拟器显示就不是首选了,需要使用真机进行测试.本节将讲解真机进行测试前的准备工作.和如何进行真机测试. ios中申请和下载证书 申请和下载证书的具体步骤如下: 1.创建App ID 在申请和下载证书之前,首先要创建一个App ID.App ID是一系列字符,用于唯一标识iOS设备中的应用程序.创建App I

iOS Sprite Kit教程之编写程序以及Xcode的介绍

iOS Sprite Kit教程之编写程序以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由很多的文件组成,例如代码文件.资源文件等.Xcode会帮助开发者对这些文件进行管理.所以,Xcode的界面也比较复杂,如图1.40所示. 图1.40  Xcode的界面 在图1.40中可以看到Xcode的界面大致可以分为4大部分. q  编号为1的部分是导航窗口. q  编号为2的部分是代码编辑区域. q  编号为3的部分是工具窗口. q  编号为4的部分是显示程序调试信息的窗口. 本小节将对

iOS Sprite Kit教程之场景的设置

iOS Sprite Kit教程之场景的设置 Sprite Kit中设置场景 在图2.8所示的效果中,可以看到新增的场景是没有任何内容的,本节将讲解对场景的三个设置,即颜色的设置.显示模式的设置以及测试信息的设置. Sprite Kit中设置场景的背影颜色 backgroundColor属性可以用来对场景的背影颜色进行设置,其语法形式如下: var backgroundColor: CGColor! UIColor类给开发者提供了一些便利的方法快速制作常见的颜色的名称,而不是使用确定的RGB值.