コード例 #1
0
        private void constructSkaia()
        {
            godTierInnerSpiro = new TexturedPlane(new Vector3(0, 8, 0), Quaternion.Identity, new Vector2(45), new Color(182, 251, 255, 100),
                                                  true, ScreenManager.Content.Load <Texture2D>(".//Miscellaneous//God Tier 1.png"));
            godTierInnerSpiro.depthBias = -0.02f;
            godTierInnerSpiro.AddModifier(new BillboardRotateModifier3D(0.0005f, true, false, -1));
            godTierInnerFill = new TexturedPlane(new Vector3(0, 8, 0), Quaternion.Identity, new Vector2(45), new Color(0, 197, 255, 66),
                                                 true, ScreenManager.Content.Load <Texture2D>(".//Miscellaneous//God Tier 2.png"));
            godTierInnerFill.depthBias = -0.01f;
            godTierInnerFill.AddModifier(new BillboardRotateModifier3D(0.0005f, true, false, -1));
            godTierOuterSpiro = new TexturedPlane(new Vector3(0, 8, 0), Quaternion.Identity, new Vector2(67), new Color(182, 251, 255, 66),
                                                  true, ScreenManager.Content.Load <Texture2D>(".//Miscellaneous//God Tier 1.png"));
            godTierOuterSpiro.depthBias = -0.04f;
            godTierOuterSpiro.AddModifier(new BillboardRotateModifier3D(0.0005f, true, false, -1));
            godTierOuterFill = new TexturedPlane(new Vector3(0, 8, 0), Quaternion.Identity, new Vector2(67), new Color(0, 197, 255, 66),
                                                 true, ScreenManager.Content.Load <Texture2D>(".//Miscellaneous//God Tier 2.png"));
            godTierOuterFill.depthBias = -0.03f;
            godTierOuterFill.AddModifier(new BillboardRotateModifier3D(0.0005f, true, false, -1));
            glowEffect = new TexturedPlane(new Vector3(0, 8, 0), Quaternion.Identity, new Vector2(40), new Color(0, 197, 255, 128),
                                           true, ScreenManager.Content.Load <Texture2D>(".//Miscellaneous//Glow.png"));
            glowEffect.depthBias = -0.05f;
            godTierSymbol        = new TexturedPlane(new Vector3(0, 8, 0), Quaternion.Identity, new Vector2(7), new Color(0, 0, 0, 255),
                                                     true, ScreenManager.Content.Load <Texture2D>(".//Miscellaneous//of Breath.png"));
            godTierSymbol.depthBias = -0.06f;

            lowerSpirograph               = new Spirograph(1f, 10f / 7f, 7, 1, 12, 0, Color.White);
            lowerSpirograph.Rotation      = Quaternion.CreateFromYawPitchRoll(0, 0, MathHelper.PiOver2);
            lowerSpirograph.WorldPosition = new Vector3(0, 2, 0);
            lowerSpirograph.AddModifier(new RotateModifier3D(Quaternion.CreateFromYawPitchRoll(-0.01f, 0, 0), false, -1));
            lowerSpirograph.Generate(600);

            reckoningGates = new Spirograph[50];
        }
コード例 #2
0
        public void Initialize(float distFromCenter, float orbitAngle, float orbitSpeed)
        {
            gates = new Spirograph[7];

            if (PlayerEntered == true)
            {
                plane.Color = Color.White;
                planeOrbit  = new OrbitModifier3D(new Vector3(0, 8, 0), Vector3.Up, distFromCenter, orbitAngle, orbitSpeed, plane, false, -1);
                plane.AddModifier(planeOrbit);
                lowerSpirograph = new Spirograph(1f, 10f / 7f, 7, 1, 3, 0, PrimaryColor);
                lowerSpirograph.AddModifier(new RotateModifier3D(Quaternion.CreateFromYawPitchRoll(0.02f, 0, 0), false, -1));
            }
            else
            {
                plane.Color = new Color(50, 50, 50);
                planeOrbit  = new OrbitModifier3D(Vector3.Zero, Vector3.Up, distFromCenter, orbitAngle, orbitSpeed, plane, false, -1);
                plane.AddModifier(planeOrbit);
                lowerSpirograph = new Spirograph(1f, 10f / 7f, 7, 0.4f, 3, 0, Color.Lerp(PrimaryColor, Color.Black, 0.8f));
                lowerSpirograph.AddModifier(new RotateModifier3D(Quaternion.CreateFromYawPitchRoll(-0.01f, 0, 0), false, -1));
            }
            lowerSpirograph.Generate(300);
            lowerSpiroOrbit = new OrbitModifier3D(Vector3.Zero, Vector3.Up, distFromCenter, orbitAngle, orbitSpeed, lowerSpirograph, false, -1);
            lowerSpirograph.AddModifier(lowerSpiroOrbit);
            lowerSpirograph.Rotation = Quaternion.CreateFromYawPitchRoll(0, 0, MathHelper.PiOver2);

            for (int i = 0; i < 7; i++)
            {
                float gateDist = ((distFromCenter - 20) / 7) * (6 - i) + 20;
                if (PlayerEntered == true)
                {
                    gates[i] = new Spirograph(1f, 10f / 7f, 7, 1, 0.2f, 0, SecondaryColor);
                    gates[i].Generate(140);
                }
                else
                {
                    gates[i] = new Spirograph(1f, 10f / 7f, 7, 1, 0.2f, 0, Color.TransparentBlack);
                    gates[i].Generate(140);
                }
                gates[i].Rotation = Quaternion.CreateFromYawPitchRoll(orbitAngle, 0, 0);//(MathHelper.TwoPi - (MathHelper.TwoPi / currentSession.Lands.Length)) * i
                gates[i].AddModifier(new RotateModifier3D(Quaternion.CreateFromYawPitchRoll(-orbitSpeed, 0, 0), false, -1));
                gates[i].WorldPosition = new Vector3(0, 8, 0);
                gates[i].AddModifier(new OrbitModifier3D(new Vector3(0, 8, 0), Vector3.Up, gateDist, orbitAngle, orbitSpeed, gates[i], false, -1));
            }
        }
コード例 #3
0
 public override void LoadContent()
 {
     ScreenManager.Content = new DynamicContentManager(ScreenManager.StaticGame, ScreenManager.StaticGame.Content.RootDirectory);
     base.LoadContent();
     spirograph = new Spirograph(1, 10f / 7f, 7, 1, 1, 300, new Color(0, 30, 0));
     camera     = new SphericalCamera(Vector3.Zero, new Vector2(0, 90), 12);
     ScreenManager.Globals.Camera = camera;
     camera.InputIndependent      = true;
     spirograph.Generate(600);
     spirograph.AddModifier(new RotateModifier3D(Quaternion.CreateFromYawPitchRoll(0, -0.01f, 0), false, -1));
     spirograph.AddModifier(new SpirographLerpModifier(-1, -1, -1, -1, 1, false, spirograph, 300));
     spirograph.AddModifier(new ColorModifier3D(new Color(100, 255, 100), false, spirograph, 300));
     flashComplete        = false;
     shrinkComplete       = false;
     growComplete         = false;
     preloadContentThread = new Thread(new ThreadStart(Preload));
     preloadContentThread.Start();
     ScreenManager.IsMouseVisible = false;
 }
コード例 #4
0
        public void Update()
        {
            if (!Paused && Active)
            {
                if (frames != 0)
                {
                    if (owner.smallerRadius != targetSmallRadius)
                    {
                        owner.smallerRadius -= lerpSpeed.X;
                    }
                    if (owner.largerRadius != targetLargeRadius)
                    {
                        owner.largerRadius -= lerpSpeed.Y;
                    }
                    if (owner.radians != targetRadians)
                    {
                        owner.radians -= lerpSpeed.Z;
                    }
                    if (owner.distToPoint != targetDist)
                    {
                        owner.distToPoint -= lerpSpeed.W;
                    }

                    owner.Generate(owner.lineVertices.Length);

                    if ((sRadiusWasSmaller && owner.smallerRadius > targetSmallRadius) ||
                        (!sRadiusWasSmaller && owner.smallerRadius < targetSmallRadius))
                    {
                        owner.smallerRadius = targetSmallRadius;
                    }

                    if ((distWasSmaller && owner.distToPoint > targetDist) ||
                        (!distWasSmaller && owner.distToPoint < targetDist))
                    {
                        owner.distToPoint = targetDist;
                    }

                    if ((lRadiusWasSmaller && owner.largerRadius > targetLargeRadius) ||
                        (!lRadiusWasSmaller && owner.largerRadius < targetLargeRadius))
                    {
                        owner.largerRadius = targetLargeRadius;
                    }

                    if ((radiansWasSmaller && owner.radians > targetRadians) ||
                        (!radiansWasSmaller && owner.radians < targetRadians))
                    {
                        owner.radians = targetRadians;
                    }

                    if (owner.smallerRadius == targetSmallRadius &&
                        owner.distToPoint == targetDist &&
                        owner.largerRadius == targetLargeRadius &&
                        owner.radians == targetRadians)
                    {
                        Active = false;
                        if (Complete != null)
                        {
                            Complete(this, EventArgs.Empty);
                        }
                    }

                    frames--;
                }
                else
                {
                    Active = false;
                    if (Complete != null)
                    {
                        Complete(this, EventArgs.Empty);
                    }
                }
            }
        }