ios - 如何在 sprite 到达特定位置后移除 physicsBody/停止响应重力?

标签 ios swift sprite-kit skphysicsbody skscene

所以我希望我的 Sprite 随着重力移动,直到它到达特定位置,然后它应该停止响应重力并停留在那里。我怎样才能做到这一点?提前致谢

我希望它在到达目标位置后停止

sprite.physicsBody = SKPhysicsBody(circleOfRadius: sprite.size.width/2)
if sprite.position == newPosition {
sprite.physicsBody?.affectedByGravity = false}

没用

最佳答案

尝试做这样的事情

 override func update(_ currentTime: TimeInterval) {
    //In this case, you can just change self.size.height/2 with whatever position you want.
    if sprite.position.y <= self.size.height/2{

        sprite.physicsBody?.affectedByGravity = false
        sprite.physicsBody?.isDynamic = false


    }


}

在本例中,我创建了一个位于顶部且重力设置为 true 的 Sprite 。在 override func update 中,我声明一旦我的 Sprite 到达这个特定位置,我希望它是静态的。

关于ios - 如何在 sprite 到达特定位置后移除 physicsBody/停止响应重力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44465152/

相关文章:

ios - Xcode 7 beta 5 中 iOS 9.0 之前的 UIStackView

ios - 所有 cocoa pod 库中的 Xcode 7.3.1 错误太突然了

ios - 如何将发射器节点移到前面?

ios - 移除特定节点的 Sprite 套件

ios xcode9.0 swift4.0 MQTT - 如何使用证书连接到MQTT服务器?

iphone - XCODE 中预期的方法体错误

ios - UITableViewDelegate 无法工作并出现错误( fatal error : Unexpectedly found nil while unwrapping an Optional value in UITableView in swift 4)

Swift,使用 UISwipeGestureRecongizer

iphone - 如何同时对多个轨道(音频和视频)使用 AVAssetReader 和 AVAssetWriter?

objective-c - 比较 Objective C 中的字符串