gpt4 book ai didi

ios - 在 Swift 中创建一个线性重力场

转载 作者:可可西里 更新时间:2023-11-01 00:53:46 25 4
gpt4 key购买 nike

在 Swift 中似乎已经弃用了矢量方法的线性重力场。这种新语言中有一堆新的 SKFieldNode,但我似乎找不到类似于线性重力的。 “方向”属性在 Swift 中甚至不可用。也许可以使用这种通用方法 customFieldWithEvaluationBlock 来完成,但我不确定如何。我是 SpriteKit 的新手。

那么,我们如何才能在 Swift 中实现相同的物理效果呢?

最佳答案

在 Swift 2(Xcode 7 的一部分)中,SIMD 向量可用于 Swift,因此使用它们的 API(例如 linearGravityFieldWithVector,新的 GameplayKitModel I/O 框架等)现在被导入到Swift 也是如此……不再需要解决方法。

let field = SKFieldNode.linearGravityFieldWithVector(float3(1,0,0))

之前...SKFieldNode 类方法 linearGravityFieldWithVector 可以执行此操作,但它在 Swift 中不可用。在 ObjC 中,向量参数使用来自 SIMD 库的 vector_float3 类型,它使用特殊的 C 编译器魔法来制作使用 SSE(在 OS X/x86 上)或 NEON(在 iOS/ARM 上)硬件加速的向量和打包好发送到 GPU。 Swift 中目前不存在这种巫术,因此任何依赖它的 ObjC API 都不会导入到 Swift 中。

目前,您可以从 ObjC 访问这些 API——在 Swift 项目中,您可以为自己制作一个 ObjC 包装函数,并在桥接 header 中将其公开给 Swift。

关于ios - 在 Swift 中创建一个线性重力场,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25558754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com