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に設定されています。
に重力を設定し、それが結果に影響を与えませんでした。 – SomeGuy