SKSpriteNode 从屏幕上掉下来
Posted
技术标签:
【中文标题】SKSpriteNode 从屏幕上掉下来【英文标题】:SKSpriteNode fall off the screen 【发布时间】:2018-07-16 16:52:28 【问题描述】:有人能帮帮我吗,我创建了一个名为 (player
) 的 SpriteKit
节点,一旦我设置了它的物理特性,它就会从屏幕上掉下来:
let player = SKSpriteNode(imageNamed: "car")
player.position.x = -300
player.zPosition = 1
player.physicsBody = SKPhysicsBody(texture: player.texture!, size: player.size)
player.physicsBody.categoryBitMask = 1
addChild(player)
我已经尝试添加了
affectedByGravity
但玩家和敌人的结果相同。
【问题讨论】:
【参考方案1】:如果我知道了,您希望您的汽车不受重力影响。 如果是这样,您可能想要设置“世界”的物理特性,例如:
func setWorld()
self.backgroundColor = UIColor.white
//This should do the trick!
physicsWorld.gravity = CGVector(dx:0, dy:0)
//This is useful if you want to create wall along the borders
let frame = CGRect(x: self.frame.minX, y: self.frame.minY, width: self.frame.width, height: self.frame.height)
//here you set the borders as walls
physicsBody = SKPhysicsBody(edgeLoopFrom: frame)
physicsBody?.friction = 0
physicsBody?.restitution = 1
physicsBody?.linearDamping = 0
并在 didMove 中调用此函数
【讨论】:
Noooooo 会关闭整个世界的重力,而不仅仅是汽车。只需在物理体上设置isAffectedByGravity = false
以上是关于SKSpriteNode 从屏幕上掉下来的主要内容,如果未能解决你的问题,请参考以下文章