Пример #1
0
        public override void applyEffect(ref DrawParameters drawParameters)
        {
            bool haloState = entityToApply.getState(EntityState.Halo);

            // Si el estado esta activado y el efecto no ha comenzado
            // entonces se comienza el efecto y se resetean los campos
            if (haloState && !effectInPlace)
            {
                effectInPlace = true;
                flickCounter = flickInterval;
                flick = true;
            }
            // De lo contrario si el estado esta desactivado y el efecto esta
            // corriendo entonces se termina el efecto
            else if(!haloState && effectInPlace)
            {
                effectInPlace = false;
            }

            if (effectInPlace)
            {
                if (flickCounter <= 0)
                {
                    flick = !flick;
                    flickCounter = flickInterval;
                }
                flickCounter--;
                if (flick) drawParameters.Draw = false;
            }
        }
Пример #2
0
        public override void applyEffect(ref DrawParameters drawParameters)
        {
            if (isHarmed && effectInPlace == false)
            {
                currentSide = 1;
                currentFrame = 1;
                effectInPlace = true;
            }
            else
            {
                isHarmed = false;
            }

            if (effectInPlace)
            {
                // Si ha hecho una iteracion de frames completa entonces se cambia
                // de lado
                if (currentFrame > framesPerRumbleSide)
                {
                    currentSide++;
                    currentFrame = 1;
                }

                // Si ya ha pasado por los 4 lados entonces termina el efecto
                if (currentSide > 4)
                {
                    effectInPlace = false;
                    return;
                }

                // Elige la posicion dependiendo del lado
                switch (currentSide)
                {
                    case 1:
                        drawParameters.Position += new Vector2(-5, 0);
                    break;
                    case 2:
                        drawParameters.Position += new Vector2(0, -5);
                    break;
                    case 3:
                        drawParameters.Position += new Vector2(5, 0);
                    break;
                    case 4:
                        drawParameters.Position += new Vector2(0, 5);
                    break;
                }

                currentFrame++;
            }
        }
Пример #3
0
 public abstract void applyEffect(ref DrawParameters drawParameters);
Пример #4
0
        public override void initialize()
        {
            textureHealthBar = Program.GAME.Content.Load<Texture2D>("teststage/generic_bar");
            font = Program.GAME.Content.Load<SpriteFont>("MenuFont");
            Program.GAME.ComponentManager.addComponent(this);
            this.isVisible = true;

            greenBarParams = new DrawParameters(textureHealthBar);
            greenBarParams.Color = Color.PaleGreen;
            greenBarParams.Rotation = 0;
            greenBarParams.Origin = Vector2.Zero;
            greenBarParams.Effects = SpriteEffects.None;
            greenBarParams.LayerDepth = GameLayers.FRONT_HUD_AREA;

            grayBarParams = new DrawParameters(textureHealthBar);
            grayBarParams.Color = Color.Gray;
            grayBarParams.Rotation = 0;
            grayBarParams.Origin = Vector2.Zero;
            grayBarParams.Effects = SpriteEffects.None;
            grayBarParams.LayerDepth = GameLayers.FRONT_HUD_AREA;
            grayBarParams.SourceRectangle = new Rectangle(0, 45, textureHealthBar.Width, 44);

            blackBarParams = new DrawParameters(textureHealthBar);
            blackBarParams.Color = Color.Black;
            blackBarParams.Rotation = 0;
            blackBarParams.Origin = Vector2.Zero;
            blackBarParams.Effects = SpriteEffects.None;
            blackBarParams.LayerDepth = GameLayers.FRONT_HUD_AREA;
            blackBarParams.SourceRectangle = new Rectangle(0, 0, textureHealthBar.Width, 44);

            HPLabelParams = new DrawStringParameters();
            HPLabelParams.SpriteFont = font;
            HPLabelParams.Text = "HP:";
            HPLabelParams.Color = Color.White;

            HPCurrentParams = new DrawStringParameters();
            HPCurrentParams.SpriteFont = font;
            HPCurrentParams.SbText = new StringBuilder();
            HPCurrentParams.Color = Color.White;
        }
Пример #5
0
 public void initialize()
 {
     // se registra al componente manager activo!
     // asi no se debe hacer... pero solo por ejemplo
     Program.GAME.ComponentManager.addComponent(this);
     // registra las propiedades obligatorias para que este comp funcione
     owner.addState(EntityState.Visible, true);
     owner.addVectorProperty(EntityProperty.Position, Vector2.Zero);
     owner.addState(EntityState.FacingRight, true);
     texture = Program.GAME.Content.Load<Texture2D>(asset);
     drawParameters = new DrawParameters(texture);
     EventManager.Instance.addListener(EventType.ACTION_CHANGE_EVENT, this);
 }
Пример #6
0
        public void initialize()
        {
            Program.GAME.ComponentManager.addComponent(this);
            isVisible = true;
            for (int i = 0; i < renderList.Count; i++)
            {
                DrawParameters objectParameters = renderList[i];
                if (objectParameters.SourceRectangle.IsEmpty)
                {
                    objectParameters.SourceRectangle = new Rectangle(0, 0, objectParameters.Texture.Width, objectParameters.Texture.Height);
                }
            }

            drawParams = new DrawParameters();
            drawParams.Color = Color.White;
            drawParams.Alpha = 1.0f;
        }
Пример #7
0
        public override void applyEffect(ref DrawParameters drawParameters)
        {
            if(effectInPlace)
            {
                float alpha = MathHelper.Clamp(drawParameters.Alpha + (fadeAmount * fadeDirection), fadeMin, fadeMax);
                drawParameters.Alpha = alpha;

                if (this.fadeType == FADE_TYPE.IN && alpha == fadeMin)
                {
                    effectInPlace = false;
                    return;
                }

                if (this.fadeType == FADE_TYPE.OUT && alpha == fadeMax)
                {
                    effectInPlace = false;
                    return;
                }

                if (this.fadeType == FADE_TYPE.INOUT)
                {
                    if (alpha == fadeMin)
                    {
                        fadeDirection = 1;
                    }
                    else if (alpha == fadeMax)
                    {
                        effectInPlace = false;
                    }
                }
            }
        }
Пример #8
0
        public void initialize()
        {
            Program.GAME.ComponentManager.addComponent(this);
            this.texture = Program.GAME.Content.Load<Texture2D>(asset);
            if (sourceRectangle.IsEmpty)
            {
                sourceRectangle = new Rectangle(0, 0, texture.Width, texture.Height);
            }

            drawParameters = new DrawParameters(texture);
            drawParameters.SourceRectangle = sourceRectangle;
            drawParameters.Color = Color.White;
            drawParameters.LayerDepth = GameLayers.MIDDLE_PLAY_AREA;
        }