在Swift中创建线性重力场
似乎在Swift中已经弃用了带向量法的线性引力场。 在这种新语言中有一堆新的SKFieldNode,但我似乎找不到类似于线性引力的那种。 Swift中甚至没有“方向”属性。 也许可以使用这个generics方法customFieldWithEvaluationBlock完成,但我不知道如何。 我是SpriteKit的新手。
那么,我们怎样才能在Swift中产生相同的物理效果呢?
在Swift 2(Xcode 7的一部分)中,SIMD向量可用于Swift,因此使用它们的API(例如linearGravityFieldWithVector
,新的GameplayKit和Model I / O框架等)现在也被导入到Swift中……不再需要解决方法了。
let field = SKFieldNode.linearGravityFieldWithVector(float3(1,0,0))
以前… SKFieldNode
类方法linearGravityFieldWithVector
执行此操作,但它在Swift中不可用。 在ObjC中,vector参数使用SIMD库中的vector_float3
类型,它使用特殊的C编译器魔术来制作使用SSE(在OS X / x86上)或NEON(在iOS / ARM上)硬件加速的向量,并很好地打包发送到GPU。 Swift中当前不存在这种伏都教,因此任何依赖它的ObjC API都不会导入到Swift中。
现在,您可以从ObjC访问这些API – 在Swift项目中,您可以使自己成为一个小的ObjC包装函数,并在桥接头中将其暴露给Swift。
如果你想对所有节点应用线性引力,你可以尝试设置physicsWorld.gravity
,它是一个CGVector
- 自定义UIPicker
- 只需简单的步骤,即可使用WSO2 Identity Server将单点登录(SSO)添加到您的iOS应用程序
- uitableview headerViewForSection:总是返回nil
- 如何在iOS中下载多个mp4文件?
- 检索用户数据以在Firebase iOS中创建排行榜
- 什么是移动网站的facebook.com/sharer.php ios / android url模式?
- 在UIInputViewController框架外绘图
- 如何添加2个textfields intget(swift3)
- 如何知道MKMapView visibleMapRect是否包含Coordinate?