首页 > 解决方案 > SpriteKit跳转后如何让玩家节点站立?

问题描述

我从纹理为玩家(兽人)创建了一个物理体。

player.physicsBody = SKPhysicsBody(texture: player.texture!, size: player.texture!.size())
player.physicsBody?.isDynamic = true
player.physicsBody?.usesPreciseCollisionDetection = true
player.physicsBody?.categoryBitMask = CollisionCategoryBitmask.Player
player.physicsBody?.collisionBitMask = 1
player.physicsBody?.restitution = 0
player.physicsBody?.friction = 1
ground?.physicsBody?.restitution = 0

在此处输入图像描述

跳跃动作是通过施加冲动产生的

 func jumpPlayer(){
    player.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 60))
 }

跳跃后,一旦着陆,玩家节点似乎会失去平衡并跌倒。

在此处输入图像描述

我怎样才能避免这种情况?

标签: iosswiftsprite-kit

解决方案


这可以通过将allowRotation设为false来解决

player.physicsBody?.allowsRotation = false

推荐阅读