示例#1
0
        public Galaxy(Vector3 Position)
            : base()
        {
            Body.CreateUVSphere(32, 32, out ModelVertices, out ModelIndices);
            effect = Manager.TexturedEffect;

            GalaxyTexture = Manager.GeneratePerlinNoise(MyGame.random.Next(10, 25));
            GalaxyTexture = Manager.SpiralWarp(GalaxyTexture);
            Color[] colorScheme = Manager.GenerateStaticNoise(5, 5);
            ColorMap = new Texture2D(MyGame.graphics.GraphicsDevice
                                     , 5
                                     , 5);
            ColorMap.SetData <Color>(colorScheme);

            RotationAxis    = Manager.GetRandomNormal();
            RotationTime    = (float)MyGame.random.NextDouble();
            Bounds          = new BoundingSphere(Position, 10000.0f);
            this.Transforms = new ScalePositionRotation(
                100.0f
                , Position
                , Matrix.CreateFromAxisAngle(RotationAxis, RotationTime));
            Mass = 1000.0f * (float)(4.0 / 3.0 * Math.PI * Math.Pow(Transforms.Scale, 3.0));
        }