2017-10-12 10 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

関連する問題