2017-10-12 80 views
0

我在屏幕上有一個球和邊界邊緣。我現在只是在測試物理,我希望球在屏幕上不停地反彈而不會放慢速度。爲什麼SpriteKit中的精靈沒有從牆上反彈

let b = self.ball?.copy() as! SKShapeNode? 

if b != nil { 
    ball!.position = CGPoint(x: CGFloat.random(min: -(self.frame.size.width/2), max: self.frame.size.width/2), y: CGFloat.random(min: -(self.frame.size.height/2), max: (self.frame.size.height/2))) 

    b?.physicsBody?.linearDamping = 0 
    b?.physicsBody?.restitution = 1 
    b?.physicsBody?.angularDamping = 0 
    b?.physicsBody?.friction = 0 

    self.addChild(b!) 

    b?.physicsBody?.applyImpulse(CGVector(dx: 1000, dy: 50)) 
} 

邊界功能正常,但球會在屏幕上跳動的時間很短,然後將對接起來反對邊緣而失去其y勢頭,只是在X方向來回移動。

我試圖改變最後一行

b?.physicsBody?.velocity = CGVector(dx: 1000, dy: 50) 

,但它做同樣的事情。邊界上的恢復原則也設置爲1。

回答

0

設置牆0

wall.physicsBody?.friction = 0 

摩擦還設置重力爲零

self.physicsWorld.gravity = CGVector(dx: 0.0, dy: 0.0) 
+0

我做這兩個,但它並沒有作用的結果。 – SomeGuy