Влияние timeStep на физические тела в SceneKit
В SceneKit у меня была проблема при столкновении двух динамических сфер, когда одна из них ударилась в другую с высокой скоростью, она проходила внутри нее. После того как я увеличился physicsWorld.timeStep
значение от 1/60
в 1/300
, столкновение сфер становится совершенным. Однако в этот момент, если сфера ударяется о неподвижную стену, она начинает скользить вдоль стены (как липкая) вместо отражения от стены. Мяч начал терять столько энергии после столкновения со стеной.
Когда timeStep был 1/60, мяч подпрыгивал на стене даже на такой низкой скорости, вместо этого прилипая к стене. На какие параметры влияет физика тела стены или шара на timeStep?
Параметры стены;
let ballMass: CGFloat = 0.08
physicsWorld.timeStep = 1/300
let wallGeometry = SCNPlane(width: (maxX - minX), height: wallHeight)
wallGeometry.firstMaterial?.diffuse.contents = UIColor.red
wallGeometry.firstMaterial?.isDoubleSided = true
let shapeWallGeometry = SCNPhysicsShape(geometry: wallGeometry, options: nil) //su an lik bir ise yaramiyor
let wallNode = SCNNode(geometry: wallGeometry)
wallNode.position = SCNVector3( x: Float(xCenter), y: Float(minY-cushionHeight/2), z: Float(cushionHeight)/2 )
wallNode.physicsBody = SCNPhysicsBody(type: .static, shape: shapeWallGeometry)
wallNode.physicsBody?.restitution = 0.82
wallNode.physicsBody?.friction = 0.91
wallNode.physicsBody?.categoryBitMask = PhysicsCategory.WallType.rawValue | PhysicsCategory.GravityType.rawValue
wallNode.physicsBody?.collisionBitMask = PhysicsCategory.BallOneType.rawValue | PhysicsCategory.BallTwoType.rawValue | PhysicsCategory.BallThreeType.rawValue | PhysicsCategory.GravityType.rawValue
wallNode.physicsBody?.contactTestBitMask = PhysicsCategory.BallOneType.rawValue | PhysicsCategory.BallTwoType.rawValue | PhysicsCategory.BallThreeType.rawValue
self.rootNode.addChildNode(wallNode)