Esempio n. 1
0
        public override void Draw()
        {
            timer.Update();
            if (timer.IsTime)
            {
                timer.Initialize();
            }

            graphicsDevice.RasterizerState = RasterizerState.CullClockwise;
            effect.Parameters["WorldViewProjection"].SetValue(Camera2D.GetView() * Camera2D.GetProjection());
            effect.Parameters["Rate"].SetValue(timer.Rate());

            float   radian       = MathHelper.ToRadians(entity.transform.Angle);
            Vector2 direction    = new Vector2((float)Math.Cos(radian), (float)Math.Sin(radian));
            Vector2 drawPosition = entity.transform.Position + Camera2D.GetOffsetPosition() + offsetPosition;
            Vector3 drawP3       = new Vector3(drawPosition, 0);

            VertexUpdate(drawP3);
            graphicsDevice.SetVertexBuffer(vertexBuffer);
            foreach (EffectPass pass in effect.CurrentTechnique.Passes)
            {
                pass.Apply();
                graphicsDevice.DrawUserPrimitives <VertexPositionTexture>(
                    PrimitiveType.TriangleStrip,
                    vertexPositions, 0, 2
                    );
            }
        }
Esempio n. 2
0
        private void DrawNoScoll()
        {
            for (int i = 0; i < imgCount; i++)
            {
                if ((layerPositions[i] + Camera2D.GetOffsetPosition()).X < -Parameter.BackGroundSize)
                {
                    continue;
                }
                if ((layerPositions[i] + Camera2D.GetOffsetPosition()).X > Parameter.ScreenSize.X)
                {
                    continue;
                }

                string imageName = name + i;
                Renderer_2D.DrawTexture(imageName, layerPositions[i]);
            }
        }
Esempio n. 3
0
        private void DrawScoll()
        {
            scrollPosition.X += scrollSpeed * Camera2D.GetCameraMove().X;
            for (int i = 0; i < imgCount; i++)
            {
                string imageName = name + i;
                Renderer_2D.DrawTexture(imageName, layerPositions[i] + scrollPosition);

                if (layerPositions[i].X + scrollPosition.X + Camera2D.GetOffsetPosition().X <= -Parameter.BackGroundSize)
                {
                    layerPositions[i] += new Vector2(Parameter.BackGroundSize * imgCount, 0);
                }
                else if (layerPositions[i].X + scrollPosition.X + Camera2D.GetOffsetPosition().X >= Parameter.BackGroundSize)
                {
                    layerPositions[i] -= new Vector2(Parameter.BackGroundSize * imgCount, 0);
                }
            }
        }
Esempio n. 4
0
        public override void Draw()
        {
            CreatEffect();

            graphicsDevice.RasterizerState = RasterizerState.CullClockwise;
            imageEffects.ForEach(i => {
                i.Update();

                Vector2 drawPosition = i.position + Camera2D.GetOffsetPosition();
                Vector3 drawP3       = new Vector3(drawPosition, 0);

                i.VertexUpdate(drawP3);
                graphicsDevice.SetVertexBuffer(i.vertexBuffer);
                foreach (EffectPass pass in i.effect.CurrentTechnique.Passes)
                {
                    pass.Apply();
                    graphicsDevice.DrawUserPrimitives <VertexPositionTexture>(
                        PrimitiveType.TriangleStrip,
                        i.vertexPositions, 0, 2
                        );
                }
            });
        }
Esempio n. 5
0
        public override void Draw()
        {
            Vector2 position = entity.transform.Position;

            float angle = entity.transform.Angle;

            if (angle % 180 == 0)
            {
                angle--;
            }

            float   radian     = MathHelper.ToRadians(angle);
            Vector2 direction  = new Vector2((float)Math.Cos(radian), (float)Math.Sin(radian));
            Vector2 offsetVert = Method.RightAngleMove(direction, 270);

            angle += 90;
            int area = (int)(angle / 90);

            radian    = MathHelper.ToRadians(angle);
            direction = new Vector2((float)Math.Cos(radian), (float)Math.Sin(radian));

            Vector2 offsetHori = Vector2.Zero;

            if (area % 4 == 0 || area % 4 == 2)
            {
                offsetHori = Method.RightAngleMove(direction, -80);
            }
            else
            {
                offsetHori = Method.RightAngleMove(direction, 80);
            }

            Timer skillCD = seasonState.GetSkillCD();
            float rate    = skillCD.Rate();

            if (skillCD.IsMax())
            {
                effect.Parameters["Alpha"].SetValue(1.0f);
                rate = 0;
            }
            else
            {
                effect.Parameters["Alpha"].SetValue(0.7f);
            }

            graphicsDevice.RasterizerState = RasterizerState.CullClockwise;
            effect.Parameters["Rate"].SetValue(rate);
            effect.Parameters["theTexture"].SetValue(ResouceManager.GetTexture("SeasonUI_0" + (int)seasonState.GetNowSeason()));
            Vector2 drawPosition = entity.transform.Position + Camera2D.GetOffsetPosition() + offsetVert + offsetHori;
            Vector3 drawP3       = new Vector3(drawPosition, 0);

            VertexUpdate(drawP3);
            graphicsDevice.SetVertexBuffer(vertexBuffer);
            foreach (EffectPass pass in effect.CurrentTechnique.Passes)
            {
                pass.Apply();
                graphicsDevice.DrawUserPrimitives <VertexPositionTexture>(
                    PrimitiveType.TriangleStrip,
                    vertexPositions, 0, 2
                    );
            }
        }
Esempio n. 6
0
        public override void Draw()
        {
            if (motion == null)
            {
                return;
            }

            float   radian    = MathHelper.ToRadians(entity.transform.Angle);
            Vector2 position  = entity.transform.Position;
            Vector2 direction = new Vector2((float)Math.Cos(radian), (float)Math.Sin(radian));

            if (isShaderOn)
            {
                shadeTimer.Update();
                if (shadeTimer.IsTime)
                {
                    effect.Parameters["theMask"].SetValue(ResouceManager.GetTexture("NoneMask"));
                }

                graphicsDevice.RasterizerState = RasterizerState.CullClockwise;
                effect.Parameters["Rate"].SetValue(shadeTimer.Rate());

                Vector2 drawPosition = position + Camera2D.GetOffsetPosition() + Method.RightAngleMove(direction, animSpriteSize.Y / 2);
                Vector3 drawP3       = new Vector3(drawPosition, 0);

                VertexUpdate(drawP3);
                graphicsDevice.SetVertexBuffer(vertexBuffer);
                foreach (EffectPass pass in effect.CurrentTechnique.Passes)
                {
                    pass.Apply();
                    graphicsDevice.DrawUserPrimitives <VertexPositionTexture>(
                        PrimitiveType.TriangleStrip,
                        vertexPositions, 0, 2
                        );
                }

                if (shadeTimer.IsTime)
                {
                    isShaderOn = false;
                }
            }
            else
            {
                motion.Update();
                Renderer_2D.Begin(Camera2D.GetTransform());

                while (entity.transform.Angle < 0)
                {
                    entity.transform.Angle += 360;
                }
                int angle = (int)(entity.transform.Angle / 90);

                Renderer_2D.DrawTexture(
                    nowAnim.AnimName,
                    position + Method.RightAngleMove(direction, animSpriteSize.Y / 2),
                    alpha,
                    motion.DrawingRange(),
                    Vector2.One * size,
                    radian,
                    animSpriteSize / 2,
                    angle % 4 == 0 || angle % 4 == 3
                    );

                Renderer_2D.End();
            }
        }
Esempio n. 7
0
 public Vector2 GetPosition()
 {
     return(new Vector2(Mouse.GetState().X, Mouse.GetState().Y) - Camera2D.GetOffsetPosition());
 }