コード例 #1
0
ファイル: RoBoGame.cs プロジェクト: suzuke/3DPhysics
        // Standard and Static callback create methods for the asset manager
        private Gobject CreateRover()
        {
            RoverObject r = null;

            try
            {
                Vector3 pos               = Vector3.Zero;
                float   maxSteerAngle     = 30.0f;
                float   steerRate         = 5.0f;
                float   wheelSideFriction = 4.7f;
                float   wheelFwdFriction  = 5.0f;
                float   wheelTravel       = 0.2f;
                float   wheelRadius       = 0.4f;
                float   wheelZOffset      = 0.05f;
                float   wheelRestingFrac  = 0.45f;
                float   wheeldampingFrac  = 0.3f;
                int     wheelNumRays      = 1;
                float   driveTorque       = 200.0f;

                r = new RoverObject(0, pos, roverModel, wheelModel, roverRadar, cubeModel, RotArm, roverCam, Pole, maxSteerAngle, steerRate,
                                    wheelSideFriction, wheelFwdFriction, wheelTravel, wheelRadius, wheelZOffset, wheelRestingFrac, wheeldampingFrac, wheelNumRays,
                                    driveTorque, /*physicsManager.PhysicsSystem.Gravity.Length());*/ 10f);
                // TODO FIX - Jeffrey changed gravity to magic constant because planets have their own gravity ... thus PhysicsSystem.Gravity = 0;
                r.Rover.EnableCar();
                r.Rover.Chassis.Body.AllowFreezing = false;

                if (isServer)
                {
                    r.AddCollisionCallback(CollisionSkin_callbackFn);
                }
            }
            catch (Exception E)
            {
                System.Diagnostics.Debug.WriteLine(E.StackTrace);
            }
            return(r);
        }