func fire() { var mass m.Real = 1.5 var radius m.Real = 0.2 // create a test sphere to render bullet := CreateSphere(float32(radius), 16, 16) bullet.Shader = colorShader bullet.Color = mgl.Vec4{0.2, 0.2, 1.0, 1.0} // create the collision box for the the bullet bulletCollider := cubez.NewCollisionSphere(nil, radius) bulletCollider.Body.Position = m.Vector3{0.0, 1.5, 20.0} var cubeInertia m.Matrix3 var coeff m.Real = 0.4 * mass * radius * radius cubeInertia.SetInertiaTensorCoeffs(coeff, coeff, coeff, 0.0, 0.0, 0.0) bulletCollider.GetBody().SetInertiaTensor(&cubeInertia) bulletCollider.Body.SetMass(mass) bulletCollider.Body.Velocity = m.Vector3{0.0, 0.0, -40.0} bulletCollider.Body.Acceleration = m.Vector3{0.0, -2.5, 0.0} bulletCollider.Body.CalculateDerivedData() bulletCollider.CalculateDerivedData() e := NewEntity(bullet, bulletCollider) bullets = append(bullets, e) }