func NewPhysics(data *structs.Data) *Physics { data.MaxVelocity = 300 data.MaxAcceleration = 100 p := &Physics{ Data: data, PrevData: structs.NewData(), CollisionGeometry: &Circle{ Position: data.Position, }, } p.PrevData.Copy(p.Data) if data.Width > data.Height { p.CollisionGeometry.(*Circle).Radius = data.Width / 2 } else { p.CollisionGeometry.(*Circle).Radius = data.Height / 2 } return p }