1
votes

I am developing a simple Golf game as shown in the below image.

enter image description here

I am facing below issues:

  1. Even if I apply small amount of force, the ball continuous move along the grass? Grass friction is not stopping the ball.
  2. Sometimes, the ball speed is increased after colliding with the walls instead the ball speed should decreased after collision with the walls. The walls are having box collider.
  3. Sometimes, the ball reverses its direction after colliding with walls.

Code:

Physics properties of the ball:

 ball.physicsBody.affectedByGravity = true;
 ball.physicsBody.mass = 0.0450;
 ball.physicsBody.restitution = 0.8;
 ball.physicsBody.friction = 0.3;
 ball.physicsBody.allowsResting = true;

Physics properties of the grass:

golf.physicsBody.friction = 0.8;

Physics properties of the walls:

 leftWall.physicsBody.friction = 0;
 leftWall.physicsBody.restitution = 0.8;

I have set the physics world gravity value to -9.8.

I am looking for suggestions to fix the above listed issue. Thank you.

1

1 Answers

1
votes
  1. To stop rolling, in a 3D physics world, you need angular damping, or linear damping, or a bit of both.

  2. The friction component, when dealing with a rapidly spinning ball, can transpose to increased rate of movement, upon collisions.

  3. A ball spinning in the reverse direction to its travel vector may have enough angular momentum to reverse its direction of travel when its friction is sufficient for it to gain traction on surfaces it collides with.