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这个类中进行创建和设置!
不管是什么类型的场,都有一些通用的參数设置。例如以下
// 场的影响区域,超出区域的物体不受场影响,默认是无限
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測试的更多相关文章
- iOS Sprite Kit教程之xcode安装以及苹果帐号绑定
iOS Sprite Kit教程之xcode安装以及苹果帐号绑定 其它的网站上下载安装Xcode 有时候,应用商店下载较慢,所以用户也可以选择从其他网站下载Xcode安装文件.下面讲解这种Xcode的 ...
- iOS Sprite Kit教程之滚动场景
iOS Sprite Kit教程之滚动场景 滚动场景 在很多的游戏中,场景都不是静止的,而是滚动的,如在植物大战僵尸的游戏中,它的场景如图2.26所示. 图2.26 植物大战僵尸 在图2.26中,用 ...
- iOS Sprite Kit教程之场景的切换
iOS Sprite Kit教程之场景的切换 Sprite Kit中切换场景 每一个场景都不是单独存在的.玩家可以从一个场景中切换到另外一个场景中.本小节,我们来讲解场景切换.在每一个游戏中都会使用到 ...
- iOS Sprite Kit教程之场景的设置
iOS Sprite Kit教程之场景的设置 Sprite Kit中设置场景 在图2.8所示的效果中,可以看到新增的场景是没有任何内容的,本节将讲解对场景的三个设置,即颜色的设置.显示模式的设置以及测 ...
- iOS Sprite Kit教程之真机测试以及场景的添加与展示
iOS Sprite Kit教程之真机测试以及场景的添加与展示 IOS实现真机测试 在进行真机测试之前,首先需要确保设备已经连在了Mac(或者Mac虚拟机)上,在第1.9.1小节开始,设备就一直连接在 ...
- iOS Sprite Kit教程之申请和下载证书
iOS Sprite Kit教程之申请和下载证书 模拟器虽然可以实现真机上的一些功能,但是它是有局限的.例如,在模拟器上没有重力感应.相机机等.如果想要进行此方面的游戏的开发,进行程序测试时,模拟器显 ...
- iOS Sprite Kit教程之使用帮助文档以及调试程序
iOS Sprite Kit教程之使用帮助文档以及调试程序 IOS中使用帮助文档 在编写代码的时候,可能会遇到很多的方法.如果开发者对这些方法的功能,以及参数不是很了解,就可以使用帮助文档.那么帮助文 ...
- iOS Sprite Kit教程之编写程序以及Xcode的介绍
iOS Sprite Kit教程之编写程序以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由很多的文件组成,例如代码文件.资源文件等.Xcode会帮助开发者对这些文件进行管理.所以,Xco ...
- iOS Sprite Kit教程之编敲代码以及Xcode的介绍
iOS Sprite Kit教程之编敲代码以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由非常多的文件组成,比如代码文件.资源文件等.Xcode会帮助开发人员对这些文件进行管理.所以,X ...
随机推荐
- 安装SHARP MX-3618NC PCL6打印机驱动程序
第一步, 打开MX-CR3_PCL_PS_1302a_ChineseS_Win8Server2012.exe 驱动程序 此驱动支持Win8.Server2012及以下版本的操作系统,同时兼容Win1 ...
- gtk+学习笔记(七)
今天被一个文本框坑了,基本设置什么的都对,但是就是无法显示中文,按钮名称都可以显示中文,先介绍下文本框的基本函数吧. GtkWidget *gtk_text_view_new(void);新建一个文本 ...
- 最大子段和(Max Sum)
Max Sum. The following is an instance. a) (-2,11,-4,13,-5,-2) 思路: 最大子段和:给定一个序列(元素可正可负),找出其子序列中元素和 ...
- bzoj 4551
4551 思路: 乱搞: 代码: #include <cstdio> #include <cstring> #include <iostream> #include ...
- 破损的键盘(UVa 11988)
s[] 数组用来保存原有的字符序列 nex[] 数组记录打印的下标顺序 C++11 代码如下: #include<iostream> #include<cstring> usi ...
- 【LOJ】#6391. 「THUPC2018」淘米神的树 / Tommy
题解 一道非常神仙的计数题 如果只有一个点,就是非常简单的树型dp \(f_{u} = (siz_{u} - 1)! \prod_{v \in son_{u}} \frac{f_{v}}{siz_{v ...
- CentOS 升级Python3.X和pip3
目的:实现python3 and python2 共存,pip2 and pip3共存 一.安装依赖 yum install openssl-devel -y yum install zlib-dev ...
- FGPA 中的计数器Verilog语言(时钟分频器)
在quartusII8.0中为ALTERAFPGA设置一个分频器(计数器) 输入时钟48Mhz 输出时钟9600HZ /* 实验名称: 计数器 ** 程序功能: 将48Mhz的时钟分频为9600Hz ...
- sqlldr errors
sqlldr myUser/myPWD@myCONN control='d:/sqlload/new/test/loader1.ctl' errors=1000000
- python opencv3 摄像头人脸检测
git:https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 def detect(): # 创建人脸检测的对象 ...