Esempio n. 1
0
        //String shader2 = "sampler2D g_samSrcColor;float4 MyShader( float4 Tex : TEXCOORD0 ) : COLOR0{float4 Color;Color = tex2D( g_samSrcColor, Tex.xy);return Color;}";
        private void DrawSprite(SlimDX.Direct3D10.Device device)
        {
            if (_sprite == null)
            {
                _sprite   = new Sprite(device, 1);
                _sTexture = Texture2D.FromFile(
                    device,
                    @"C:\temp\privet.png");

                _srv   = new ShaderResourceView(device, _sTexture);
                _si[0] = new SpriteInstance(_srv, new Vector2(0, 0), new Vector2(1, 1));
                //_sprite.ProjectionTransform = Matrix.OrthoOffCenterLH(0, 800, -600, 0, -10, 10);
                _sprite.ViewTransform = Matrix.Transformation2D(Vector2.Zero, 0.0f, new Vector2(2.0f, 2.0f), Vector2.Zero, 0.0f, Vector2.Zero);


                using (var bytecode = ShaderBytecode.Compile(shader, "PShader", "ps_4_0", ShaderFlags.EnableBackwardsCompatibility, EffectFlags.None))
                    pixelShader = new PixelShader(device, bytecode);
            }
            device.PixelShader.Set(pixelShader);
            //if ((DateTime.Now - _lastSprite).TotalMilliseconds > 0)
            //{
            _sprite.Begin(SpriteFlags.None);
            _sprite.DrawImmediate(_si);
            _sprite.End();
            _lastSprite = DateTime.Now;
            //}
        }
Esempio n. 2
0
        public LevelUI()
        {
            backgroundSprite = SpriteManager.Sprites["LevelUI_Background"].CreateInstance();
            iconSprite       = SpriteManager.Sprites["LevelUI_Icons"].CreateInstance();
            elements         = new List <ActionUI>()
            {
                new ActionUI()
                {
                    Action = PlayerAction.Destroy, Frame = "Icon_Drill"
                },
                new ActionUI()
                {
                    Action = PlayerAction.Turn, Frame = "Icon_Turn"
                },
                new ActionUI()
                {
                    Action = PlayerAction.Push, Frame = "Icon_Push"
                },
                new ActionUI()
                {
                    Action = PlayerAction.Pull, Frame = "Icon_Pull"
                },
                new ActionUI()
                {
                    Action = PlayerAction.Grab, Frame = "Icon_Grapple"
                },
            };

            for (int i = 0; i < elements.Count; i++)
            {
                elements[i].Location = new Vector2(i * backgroundSprite.Source.Image.FrameSize.X, 160);
            }
        }
Esempio n. 3
0
    private void InstantiateSprite(GameObject clientObject, SpriteInstance spriteInstance)
    {
        var go = GameObject.Instantiate(spriteInstance);

        go.transform.parent   = clientObject.transform;
        go.transform.position = new Vector3(go.transform.position.x, go.transform.position.y, spriteInstance.Layer);
    }
Esempio n. 4
0
 protected SpriteInstance[] GetSpriteInstances()
 {
     SpriteInstance[] sprites = new SpriteInstance[allSprites.Count];
     for (int i = 0; i < sprites.Length; i++)
         sprites[i] = allSprites[i].Instance;
     return sprites;
 }
    void LoadSprite(string path)
    {
        //Debug
        Debug.Log(AssetDatabase.GUIDToAssetPath(path));

        //Split name to components
        string[] fileName = AssetDatabase.GUIDToAssetPath(path).Split('/', '.');

        //Split file name to components
        string[] components = fileName[fileName.Length - 2].Split(' ');

        //Sprite instance
        SpriteInstance newInstance = new SpriteInstance();

        //ID
        newInstance.spriteId = int.Parse(components[1]);

        //Assign sprite object
        newInstance.spriteObject = (Sprite)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(path), typeof(Sprite));

        //Switch depending on colour
        if (components.Length > 2)
        {
            //newInstance.colour = GetColourFromComponent(components[2]);
        }

        //Switch depending on the avatar part
        AssignToListByType(components[0], components[2], newInstance);
    }
Esempio n. 6
0
        public static SpriteImage GetSpriteImage(this SpriteInstance spriteInstance)
        {
            var texSize = spriteInstance.Texture.GetSize();
            var leftTop = new Vector2(spriteInstance.Rectangle.X, spriteInstance.Rectangle.Y) / texSize;
            var size    = new Vector2(spriteInstance.Rectangle.Z, spriteInstance.Rectangle.W) / texSize;

            return(new SpriteImage(spriteInstance.Texture, leftTop, size));
        }
Esempio n. 7
0
        public ISpriteInstance AddSprite(Sprite sprite)
        {
            Contract.Requires(sprite != null && sprite.SpriteSheet == SpriteSheet);

            var instance = new SpriteInstance(this, sprite);
            m_instances.Add(instance);

            instance.Size = new Vector2(sprite.Size.X, sprite.Size.Y);

            return instance;
        }
Esempio n. 8
0
        public Bullet FireRaw(Vector3 pos, float angle, float speed, SpriteImage image, Animation anim = null)
        {
            var vel    = new Vector3(MathX.DCos(angle) * speed, MathX.DSin(angle) * speed, 0f);
            var tex    = image.Texture;
            var sprite = new SpriteInstance(SpriteEffect, pos, vel, image.Size, tex, image.TextureRegion.Rectangle, anim);

            sprite.Rotation = MathX.DegToRad(angle - 90f);
            var bullet = new Bullet(this, sprite);

            return(bullet);
        }
Esempio n. 9
0
        public ISpriteInstance AddSprite(Sprite sprite)
        {
            Contract.Requires(sprite != null && sprite.SpriteSheet == SpriteSheet);

            var instance = new SpriteInstance(this, sprite);

            m_instances.Add(instance);

            instance.Size = new Vector2(sprite.Size.X, sprite.Size.Y);

            return(instance);
        }
Esempio n. 10
0
        public void DrawMessage(string message, Anchor anchor, int xOffset, int yOffset)
        {
            message = message.ToLower();
            int realXOffset;
            int realYOffset;

            switch (anchor)
            {
            default:
            case Anchor.TopLeft:
                realXOffset = (xOffset * charSize) + (charSize / 2);
                realYOffset = (yOffset * charSize) + (charSize / 2);
                break;

            case Anchor.BottomLeft:
                realXOffset = (xOffset * charSize) + (charSize / 2);
                realYOffset = renderTarget.Height - ((yOffset + 1) * charSize) - (charSize / 2);
                break;

            case Anchor.TopRight:
                realXOffset = renderTarget.Width - (message.Length * charSize) - (charSize / 2);
                realYOffset = (yOffset * charSize) + (charSize / 2);
                break;

            case Anchor.BottomRight:
                realXOffset = renderTarget.Width - (message.Length * charSize) - (charSize / 2);
                realYOffset = renderTarget.Height - ((yOffset + 1) * charSize) - (charSize / 2);
                break;
            }
            float scaleX = 64f / (float)renderTarget.Width; //A lot of stuff here assume a charSize for 16, and the size of the character sheet being 256x256, but it's currently too delicate of a balance for me to try to cleanup.
            float scaleY = 64f / (float)renderTarget.Height;
            float xf     = (((((float)realXOffset / (float)renderTarget.Width) * 2f) - 1) * 2) + (0.5f * scaleX);
            float yf     = -((((((float)realYOffset / (float)renderTarget.Height) * 2f) - 1) * 2) + (0.5f * scaleY));

            messageSprite.Begin(SpriteFlags.None);

            SpriteInstance[] chars = new SpriteInstance[message.Length];
            for (int i = 0; i < message.Length; i++)
            {
                int charNum = 0;
                if (charSheetSprites.ContainsKey(message[i]))
                {
                    charNum = charSheetSprites[message[i]];
                }
                float charX = ((charNum % 16) * 0.0625f);
                float charY = ((charNum / 16) * 0.0625f);
                chars[i]           = new SpriteInstance(spriteView, new Vector2(charX, charY), new Vector2(0.0625f, 0.0625f));
                chars[i].Transform = Matrix.Add(Matrix.Translation(xf + (i * scaleX), yf, 0), Matrix.Scaling(scaleX - 1, scaleY - 1, 0));
            }
            messageSprite.DrawBuffered(chars);
            messageSprite.End();
        }
Esempio n. 11
0
 private Level(int width, int height)
 {
     Width      = width;
     Height     = height;
     data       = new LevelTile[width, height];
     tileColors = new Dictionary <TileType, Color>()
     {
         [TileType.Floor]   = Color.White,
         [TileType.Wall]    = Color.DarkGray,
         [TileType.Movable] = Color.Green,
     };
     sprite = SpriteManager.Sprites["MarsTiles"].CreateInstance();
 }
Esempio n. 12
0
        protected override bool Init(object controller, object binding, DefinitionFile definition)
        {
            if (!base.Init(controller, binding, definition))
            {
                return(false);
            }

            DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiSpritePresenter));

            _spriteInstance          = DefinitionResolver.Get <Sprite>(Controller, Binding, file["Sprite"], null).CreateInstance();
            _spriteInstance.Sequence = DefinitionResolver.GetString(Controller, Binding, file["Sequence"]);

            return(true);
        }
Esempio n. 13
0
            public void Merge(string iSlot, string vSlot, ScriptNode rawSprite)
            {
                var si = new SpriteInstance();

                si.Source   = new SpriteSource(rawSprite, new Point(), "", iSlot, vSlot);
                si.Position = new Point(
                    -si.Source.Canvas.CenterX,
                    -si.Source.Canvas.CenterY
                    );

                if (Body)
                {
                    BodySprite = si;
                    Body       = false;
                }

                si.Group = ExtractMap(rawSprite);

                Sprites.Add(si);
                // Sort sprites on Z index
                Sprites.Sort(delegate(SpriteInstance a, SpriteInstance b) { return(a.Source.Z - b.Source.Z); });

                Groups.Add(si.Group);

                Console.WriteLine("Merging {0} {1} groups {2}", iSlot, vSlot, string.Join(", ", si.Group.Select(x => x.Name)));

                MBRValid = false;

                while (true)
                {
                    var a = si.Group;
                    var b = FindGroup(a);

                    if (b == null)
                    {
                        break;
                    }

                    if (Groups.Count > 0 && Groups[0] == si.Group)
                    {
                        // Swap a and b
                        var c = a;
                        a = b;
                        b = c;
                    }

                    MergeGroup(a, b);
                }
            }
Esempio n. 14
0
        public void GetHitBy(BasePlayerProjectile projectile, float dmgMultiplier = 1)
        {
            if (isHorde)
            {
                return;
            }

            var effectiveMultiplier = GetEffectiveMultiplier(projectile.DamageType);
            var dmgInflicted        = effectiveMultiplier * projectile.DamageInflicted * dmgMultiplier;

            TakeDamage(dmgInflicted);

            var shouldBeHurt = true;

            switch (projectile.DamageType)
            {
            case DamageTypes.Frost:
                _frostDurationSeconds = projectile.StatusEffectSeconds * effectiveMultiplier;
                _frostDamagePerSecond = dmgInflicted * projectile.StatusDamageMultiplier;
                _burnDurationSeconds  = 0;
                shouldBeHurt          = false;
                break;

            case DamageTypes.Chemical:
                _poisonedDurationSeconds = projectile.StatusEffectSeconds * effectiveMultiplier;
                _poisonDamagePerSecond   = dmgInflicted * projectile.StatusDamageMultiplier;
                shouldBeHurt             = false;
                break;

            case DamageTypes.Electrical:
                _stunnedDurationSeconds = projectile.StatusEffectSeconds * effectiveMultiplier;
                break;

            case DamageTypes.Fire:
                _burnDurationSeconds  = projectile.StatusEffectSeconds * effectiveMultiplier;
                _burnDamagePerSecond  = dmgInflicted * projectile.StatusDamageMultiplier;
                _frostDurationSeconds = 0;
                break;
            }
            UpdateStatusEffect(justApplied: true);

            if (!IsDead && shouldBeHurt)
            {
                CurrentActionState = Action.Hurt;
                SpriteInstance.UpdateToCurrentAnimationFrame();
                UpdateSpritesRelativeY();
            }
        }
Esempio n. 15
0
        public ISpriteInstance AddSprite(Sprite sprite)
        {
            Contract.Requires(sprite != null && sprite.SpriteSheet == SpriteSheet);

            var instance = new SpriteInstance(this, sprite);

            instance.Size             = new Vector2(sprite.Size.X, sprite.Size.Y);
            instance.Color            = new Color4ub(255, 255, 255, 255);
            instance.RotateFromOrigin = false;

            lock (m_instances)
            {
                m_instances.Add(instance);
            }

            return(instance);
        }
Esempio n. 16
0
        public ISpriteInstance AddSprite(Sprite sprite)
        {
            Contract.Requires(sprite != null && sprite.SpriteSheet == SpriteSheet);

            var instance = new SpriteInstance(this, sprite);

            instance.Size = new Vector2(sprite.Size.X, sprite.Size.Y);
            instance.Color = new Color4ub(255, 255, 255, 255);
            instance.RotateFromOrigin = false;

            lock (m_instances)
            {
                m_instances.Add(instance);
            }

            return instance;
        }
Esempio n. 17
0
        protected void UpdateAnimation()
        {
            if (SpriteInstance.CurrentChain == null || SpriteInstance.CurrentChain.Count == 1)
            {
                SpriteInstance.RelativeY = _spriteRelativeY;
            }
            else
            {
                SpriteInstance.UpdateToCurrentAnimationFrame();

                if (SpriteInstance.UseAnimationRelativePosition)
                {
                    SpriteInstance.RelativeX *= (SpriteInstance.FlipHorizontal
                        ? -SpriteInstance.TextureScale
                        : SpriteInstance.TextureScale);
                    SpriteInstance.RelativeY *= (SpriteInstance.FlipVertical
                        ? -SpriteInstance.TextureScale
                        : SpriteInstance.TextureScale);
                }
                SpriteInstance.RelativeY += _spriteRelativeY;
            }
        }
    bool ItemIsValid(SpriteInstance item)
    {
        bool itemValidFlag = true;

        //Check skin colour
        if (item.type == spriteType.faceShape || item.type == spriteType.body)
        {
            if (item.colour != currentSkinColour)
            {
                itemValidFlag = false;
            }
        }

        //Check hair colour
        if (item.type == spriteType.hairDown || item.type == spriteType.hairUp)
        {
            if (item.colour != currentHairColour)
            {
                itemValidFlag = false;
            }
        }

        return(itemValidFlag);
    }
        public override void PostInitialize()
        {
            bool oldShapeManagerSuppressAdd = FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue;

            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = true;
            base.PostInitialize();
            if (SpriteInstance.Parent == null)
            {
                SpriteInstance.CopyAbsoluteToRelative();
                SpriteInstance.AttachTo(this, false);
            }
            base.SpriteInstance.Texture                      = AllParticles;
            base.SpriteInstance.LeftTexturePixel             = 1949f;
            base.SpriteInstance.RightTexturePixel            = 2037f;
            base.SpriteInstance.TopTexturePixel              = 1724f;
            base.SpriteInstance.BottomTexturePixel           = 1825f;
            base.SpriteInstance.TextureScale                 = 1f;
            base.SpriteInstance.UseAnimationRelativePosition = false;
            base.SpriteInstance.AnimationChains              = BaseStructureAnimationChainListFile;
            base.SpriteInstance.CurrentChainName             = "BombardingTower";
            if (mAxisAlignedRectangleInstance.Parent == null)
            {
                mAxisAlignedRectangleInstance.CopyAbsoluteToRelative();
                mAxisAlignedRectangleInstance.AttachTo(this, false);
            }
            base.AxisAlignedRectangleInstance.Width  = 64f;
            base.AxisAlignedRectangleInstance.Height = 64f;
            if (LightSpriteInstance.Parent == null)
            {
                LightSpriteInstance.CopyAbsoluteToRelative();
                LightSpriteInstance.AttachTo(this, false);
            }
            if (LightSpriteInstance.Parent == null)
            {
                base.LightSpriteInstance.X = 0f;
            }
            else
            {
                base.LightSpriteInstance.RelativeX = 0f;
            }
            if (LightSpriteInstance.Parent == null)
            {
                base.LightSpriteInstance.Y = 30f;
            }
            else
            {
                base.LightSpriteInstance.RelativeY = 30f;
            }
            if (LightSpriteInstance.Parent == null)
            {
                base.LightSpriteInstance.Z = -1f;
            }
            else
            {
                base.LightSpriteInstance.RelativeZ = -1f;
            }
            base.LightSpriteInstance.LeftTexturePixel   = 1792f;
            base.LightSpriteInstance.RightTexturePixel  = 2048f;
            base.LightSpriteInstance.TopTexturePixel    = 1792f;
            base.LightSpriteInstance.BottomTexturePixel = 2048f;
            base.LightSpriteInstance.TextureScale       = 1f;
            #if FRB_MDX
            LightSpriteInstance.ColorOperation = Microsoft.DirectX.Direct3D.TextureOperation.Modulate;
            #else
            base.LightSpriteInstance.ColorOperation = FlatRedBall.Graphics.ColorOperation.Modulate;
            #endif
            base.LightSpriteInstance.Blue  = 0.5f;
            base.LightSpriteInstance.Alpha = 0.25f;
            if (AimSpriteInstance.Parent == null)
            {
                AimSpriteInstance.CopyAbsoluteToRelative();
                AimSpriteInstance.AttachTo(this, false);
            }
            if (AimSpriteInstance.Parent == null)
            {
                base.AimSpriteInstance.X = 0f;
            }
            else
            {
                base.AimSpriteInstance.RelativeX = 0f;
            }
            if (AimSpriteInstance.Parent == null)
            {
                base.AimSpriteInstance.Y = 78f;
            }
            else
            {
                base.AimSpriteInstance.RelativeY = 78f;
            }
            if (AimSpriteInstance.Parent == null)
            {
                base.AimSpriteInstance.Z = 1f;
            }
            else
            {
                base.AimSpriteInstance.RelativeZ = 1f;
            }
            base.AimSpriteInstance.Texture            = AllParticles;
            base.AimSpriteInstance.LeftTexturePixel   = 1939f;
            base.AimSpriteInstance.RightTexturePixel  = 1986f;
            base.AimSpriteInstance.TopTexturePixel    = 1846f;
            base.AimSpriteInstance.BottomTexturePixel = 2002f;
            base.AimSpriteInstance.TextureScale       = 1f;
            if (PivotPoint.Parent == null)
            {
                PivotPoint.CopyAbsoluteToRelative();
                PivotPoint.AttachTo(this, false);
            }
            if (PivotPoint.Parent == null)
            {
                base.PivotPoint.Y = 30f;
            }
            else
            {
                base.PivotPoint.RelativeY = 30f;
            }
            if (LightAimSpriteInstance.Parent == null)
            {
                LightAimSpriteInstance.CopyAbsoluteToRelative();
                LightAimSpriteInstance.AttachTo(this, false);
            }
            if (LightAimSpriteInstance.Parent == null)
            {
                base.LightAimSpriteInstance.Y = 120f;
            }
            else
            {
                base.LightAimSpriteInstance.RelativeY = 120f;
            }
            base.LightAimSpriteInstance.Texture            = AllParticles;
            base.LightAimSpriteInstance.LeftTexturePixel   = 1060f;
            base.LightAimSpriteInstance.RightTexturePixel  = 1122f;
            base.LightAimSpriteInstance.TopTexturePixel    = 1269f;
            base.LightAimSpriteInstance.BottomTexturePixel = 1339f;
            base.LightAimSpriteInstance.TextureScale       = 1f;
            base.LightAimSpriteInstance.Width   = 91f;
            base.LightAimSpriteInstance.Height  = 70f;
            base.LightAimSpriteInstance.Visible = true;
            #if FRB_MDX
            LightAimSpriteInstance.ColorOperation = Microsoft.DirectX.Direct3D.TextureOperation.Modulate;
            #else
            base.LightAimSpriteInstance.ColorOperation = FlatRedBall.Graphics.ColorOperation.Modulate;
            #endif
            base.LightAimSpriteInstance.Red            = 0.5f;
            base.LightAimSpriteInstance.Green          = 0.23f;
            base.LightAimSpriteInstance.BlendOperation = FlatRedBall.Graphics.BlendOperation.Add;
            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = oldShapeManagerSuppressAdd;
        }
        public override void PostInitialize()
        {
            bool oldShapeManagerSuppressAdd = FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue;

            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = true;
            base.PostInitialize();
            if (LightOrShadowSprite.Parent == null)
            {
                LightOrShadowSprite.CopyAbsoluteToRelative();
                LightOrShadowSprite.AttachTo(this, false);
            }
            if (LightOrShadowSprite.Parent == null)
            {
                base.LightOrShadowSprite.Y = -8f;
            }
            else
            {
                base.LightOrShadowSprite.RelativeY = -8f;
            }
            if (LightOrShadowSprite.Parent == null)
            {
                base.LightOrShadowSprite.Z = -1f;
            }
            else
            {
                base.LightOrShadowSprite.RelativeZ = -1f;
            }
            base.LightOrShadowSprite.Texture            = AllParticles;
            base.LightOrShadowSprite.LeftTexturePixel   = 1019f;
            base.LightOrShadowSprite.RightTexturePixel  = 1072f;
            base.LightOrShadowSprite.TopTexturePixel    = 1895f;
            base.LightOrShadowSprite.BottomTexturePixel = 1948f;
            base.LightOrShadowSprite.TextureScale       = 1f;
            base.LightOrShadowSprite.Width   = 32f;
            base.LightOrShadowSprite.Height  = 24f;
            base.LightOrShadowSprite.Animate = false;
            #if FRB_MDX
            LightOrShadowSprite.ColorOperation = Microsoft.DirectX.Direct3D.TextureOperation.Modulate;
            #else
            base.LightOrShadowSprite.ColorOperation = FlatRedBall.Graphics.ColorOperation.Modulate;
            #endif
            base.LightOrShadowSprite.Alpha = 0.8f;
            base.LightOrShadowSprite.ParentRotationChangesPosition = false;
            base.LightOrShadowSprite.ParentRotationChangesRotation = false;
            if (SpriteInstance.Parent == null)
            {
                SpriteInstance.CopyAbsoluteToRelative();
                SpriteInstance.AttachTo(this, false);
            }
            if (SpriteInstance.Parent == null)
            {
                base.SpriteInstance.Z = 1f;
            }
            else
            {
                base.SpriteInstance.RelativeZ = 1f;
            }
            base.SpriteInstance.TextureScale     = 0.5f;
            base.SpriteInstance.AnimationChains  = CannonProjectileAnimationChainListFile;
            base.SpriteInstance.CurrentChainName = "Shot";
            base.SpriteInstance.Visible          = true;
            base.SpriteInstance.ParentRotationChangesPosition = false;
            if (mCircleInstance.Parent == null)
            {
                mCircleInstance.CopyAbsoluteToRelative();
                mCircleInstance.AttachTo(this, false);
            }
            if (CircleInstance.Parent == null)
            {
                base.CircleInstance.X = 0f;
            }
            else
            {
                base.CircleInstance.RelativeX = 0f;
            }
            if (CircleInstance.Parent == null)
            {
                base.CircleInstance.Y = 0f;
            }
            else
            {
                base.CircleInstance.RelativeY = 0f;
            }
            base.CircleInstance.Radius = 16f;
            base.CircleInstance.Color  = Microsoft.Xna.Framework.Color.Red;
            base.CircleInstance.ParentRotationChangesPosition = false;
            mGeneratedCollision = new FlatRedBall.Math.Geometry.ShapeCollection();
            mGeneratedCollision.Circles.AddOneWay(mCircleInstance);
            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = oldShapeManagerSuppressAdd;
        }
    //Type switch
    void AssignToListByType(string word, string colour, SpriteInstance instance)
    {
        switch (word)
        {
        case "Face":
            instance.type   = spriteType.faceShape;
            instance.colour = GetSkinColourFromComponent(colour);
            faceShapes.Add(instance);
            return;

        case "SkinColour":
            instance.type   = spriteType.skin;
            instance.colour = GetSkinColourFromComponent(colour);
            skinColours.Add(instance);
            return;

        case "Body":
            instance.type   = spriteType.body;
            instance.colour = GetSkinColourFromComponent(colour);
            bodies.Add(instance);
            return;

        case "Eyes":
            instance.type   = spriteType.eyes;
            instance.colour = spriteColour.none;
            eyes.Add(instance);
            return;

        case "HairColour":
            instance.type   = spriteType.hairColour;
            instance.colour = GetHairColourFromComponent(colour);
            hairColours.Add(instance);
            return;

        case "HairDown":
            instance.type   = spriteType.hairDown;
            instance.colour = GetHairColourFromComponent(colour);
            hairDown.Add(instance);
            return;

        case "HairUp":
            instance.type   = spriteType.hairUp;
            instance.colour = GetHairColourFromComponent(colour);
            hairUp.Add(instance);
            return;

        case "Mouth":
            instance.type   = spriteType.mouth;
            instance.colour = spriteColour.none;
            mouths.Add(instance);
            return;

        case "Nose":
            instance.type   = spriteType.nose;
            instance.colour = spriteColour.none;
            noses.Add(instance);
            return;

        default:
            instance.type   = spriteType.none;
            instance.colour = spriteColour.none;
            return;
        }
    }
Esempio n. 22
0
        public override void PostInitialize()
        {
            bool oldShapeManagerSuppressAdd = FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue;

            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = true;
            base.PostInitialize();
            if (SpriteInstance.Parent == null)
            {
                SpriteInstance.CopyAbsoluteToRelative();
                SpriteInstance.AttachTo(this, false);
            }
            base.SpriteInstance.Texture          = Stage2;
            base.SpriteInstance.TextureScale     = 0.5f;
            base.SpriteInstance.Animate          = true;
            base.SpriteInstance.AnimationChains  = Chicken2Animations;
            base.SpriteInstance.CurrentChainName = "Running";
            if (mCircleInstance.Parent == null)
            {
                mCircleInstance.CopyAbsoluteToRelative();
                mCircleInstance.AttachTo(this, false);
            }
            base.CircleInstance.Radius = 24f;
            if (LightSprite.Parent == null)
            {
                LightSprite.CopyAbsoluteToRelative();
                LightSprite.AttachTo(this, false);
            }
            if (LightSprite.Parent == null)
            {
                base.LightSprite.Z = 1f;
            }
            else
            {
                base.LightSprite.RelativeZ = 1f;
            }
            base.LightSprite.Texture            = AllAssetsSheet;
            base.LightSprite.LeftTexturePixel   = 1792f;
            base.LightSprite.RightTexturePixel  = 2048f;
            base.LightSprite.TopTexturePixel    = 1792f;
            base.LightSprite.BottomTexturePixel = 2048f;
            base.LightSprite.TextureScale       = 0.2f;
            #if FRB_MDX
            LightSprite.ColorOperation = Microsoft.DirectX.Direct3D.TextureOperation.Modulate;
            #else
            base.LightSprite.ColorOperation = FlatRedBall.Graphics.ColorOperation.Modulate;
            #endif
            base.LightSprite.Red            = 0.5f;
            base.LightSprite.Blue           = 0.5f;
            base.LightSprite.BlendOperation = FlatRedBall.Graphics.BlendOperation.Add;
            if (ShadowSprite.Parent == null)
            {
                ShadowSprite.CopyAbsoluteToRelative();
                ShadowSprite.AttachTo(this, false);
            }
            if (ShadowSprite.Parent == null)
            {
                base.ShadowSprite.Y = -36f;
            }
            else
            {
                base.ShadowSprite.RelativeY = -36f;
            }
            if (ShadowSprite.Parent == null)
            {
                base.ShadowSprite.Z = -1f;
            }
            else
            {
                base.ShadowSprite.RelativeZ = -1f;
            }
            base.ShadowSprite.Texture            = AllParticles;
            base.ShadowSprite.LeftTexturePixel   = 1019f;
            base.ShadowSprite.RightTexturePixel  = 1072f;
            base.ShadowSprite.TopTexturePixel    = 1895f;
            base.ShadowSprite.BottomTexturePixel = 1948f;
            base.ShadowSprite.TextureScale       = 1f;
            base.ShadowSprite.Width  = 32f;
            base.ShadowSprite.Height = 20f;
            #if FRB_MDX
            ShadowSprite.ColorOperation = Microsoft.DirectX.Direct3D.TextureOperation.Modulate;
            #else
            base.ShadowSprite.ColorOperation = FlatRedBall.Graphics.ColorOperation.Modulate;
            #endif
            base.ShadowSprite.Alpha = 0.3f;
            if (PoisonedParticles.Parent == null)
            {
                PoisonedParticles.CopyAbsoluteToRelative();
                PoisonedParticles.AttachTo(this, false);
            }
            if (FrozenParticles.Parent == null)
            {
                FrozenParticles.CopyAbsoluteToRelative();
                FrozenParticles.AttachTo(this, false);
            }
            if (SmokeParticles.Parent == null)
            {
                SmokeParticles.CopyAbsoluteToRelative();
                SmokeParticles.AttachTo(this, false);
            }
            if (StunParticles.Parent == null)
            {
                StunParticles.CopyAbsoluteToRelative();
                StunParticles.AttachTo(this, false);
            }
            mGeneratedCollision = new FlatRedBall.Math.Geometry.ShapeCollection();
            mGeneratedCollision.Circles.AddOneWay(mCircleInstance);
            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = oldShapeManagerSuppressAdd;
        }
Esempio n. 23
0
        //String shader2 = "sampler2D g_samSrcColor;float4 MyShader( float4 Tex : TEXCOORD0 ) : COLOR0{float4 Color;Color = tex2D( g_samSrcColor, Tex.xy);return Color;}";
        private void DrawSprite(SlimDX.Direct3D10.Device device)
        {
            if (_sprite == null)
            {
                _sprite = new Sprite(device, 1);
                _sTexture = Texture2D.FromFile(
                    device,
                    @"C:\temp\privet.png");
                
                _srv=new ShaderResourceView(device, _sTexture);
                _si[0] = new SpriteInstance(_srv, new Vector2(0, 0), new Vector2(1,1));
                //_sprite.ProjectionTransform = Matrix.OrthoOffCenterLH(0, 800, -600, 0, -10, 10);
                _sprite.ViewTransform = Matrix.Transformation2D(Vector2.Zero, 0.0f, new Vector2(2.0f, 2.0f), Vector2.Zero, 0.0f, Vector2.Zero);


                using (var bytecode = ShaderBytecode.Compile(shader, "PShader", "ps_4_0", ShaderFlags.EnableBackwardsCompatibility, EffectFlags.None))
                    pixelShader = new PixelShader(device, bytecode);

                
            }
            device.PixelShader.Set(pixelShader);
            //if ((DateTime.Now - _lastSprite).TotalMilliseconds > 0)
            //{
            _sprite.Begin(SpriteFlags.None);
            _sprite.DrawImmediate(_si);
            _sprite.End();
            _lastSprite = DateTime.Now;
            //}
        }
Esempio n. 24
0
        public override void PostInitialize()
        {
            bool oldShapeManagerSuppressAdd = FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue;

            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = true;
            base.PostInitialize();
            if (SpriteInstance.Parent == null)
            {
                SpriteInstance.CopyAbsoluteToRelative();
                SpriteInstance.AttachTo(this, false);
            }
            base.SpriteInstance.Texture            = AllParticles;
            base.SpriteInstance.LeftTexturePixel   = 1622f;
            base.SpriteInstance.RightTexturePixel  = 1746f;
            base.SpriteInstance.TopTexturePixel    = 1568f;
            base.SpriteInstance.BottomTexturePixel = 1789f;
            base.SpriteInstance.TextureScale       = 1f;
            base.SpriteInstance.AnimationChains    = BaseStructureAnimationChainListFile;
            base.SpriteInstance.CurrentChainName   = "ElectricTower";
            if (mAxisAlignedRectangleInstance.Parent == null)
            {
                mAxisAlignedRectangleInstance.CopyAbsoluteToRelative();
                mAxisAlignedRectangleInstance.AttachTo(this, false);
            }
            base.AxisAlignedRectangleInstance.Width  = 64f;
            base.AxisAlignedRectangleInstance.Height = 64f;
            if (LightSpriteInstance.Parent == null)
            {
                LightSpriteInstance.CopyAbsoluteToRelative();
                LightSpriteInstance.AttachTo(this, false);
            }
            if (LightSpriteInstance.Parent == null)
            {
                base.LightSpriteInstance.X = 15f;
            }
            else
            {
                base.LightSpriteInstance.RelativeX = 15f;
            }
            if (LightSpriteInstance.Parent == null)
            {
                base.LightSpriteInstance.Y = 95f;
            }
            else
            {
                base.LightSpriteInstance.RelativeY = 95f;
            }
            if (LightSpriteInstance.Parent == null)
            {
                base.LightSpriteInstance.Z = -1f;
            }
            else
            {
                base.LightSpriteInstance.RelativeZ = -1f;
            }
            base.LightSpriteInstance.LeftTexturePixel   = 1792f;
            base.LightSpriteInstance.RightTexturePixel  = 2048f;
            base.LightSpriteInstance.TopTexturePixel    = 1792f;
            base.LightSpriteInstance.BottomTexturePixel = 2048f;
            base.LightSpriteInstance.TextureScale       = 1f;
            base.LightSpriteInstance.Width            = 1f;
            base.LightSpriteInstance.Height           = 1f;
            base.LightSpriteInstance.AnimationChains  = StructureGlowAnimationChainList;
            base.LightSpriteInstance.CurrentChainName = "ElectricGlow";
            #if FRB_MDX
            LightSpriteInstance.ColorOperation = Microsoft.DirectX.Direct3D.TextureOperation.Modulate;
            #else
            base.LightSpriteInstance.ColorOperation = FlatRedBall.Graphics.ColorOperation.Modulate;
            #endif
            base.LightSpriteInstance.Blue  = 0.5f;
            base.LightSpriteInstance.Alpha = 0.5f;
            if (AimSpriteInstance.Parent == null)
            {
                AimSpriteInstance.CopyAbsoluteToRelative();
                AimSpriteInstance.AttachTo(this, false);
            }
            if (AimSpriteInstance.Parent == null)
            {
                base.AimSpriteInstance.X = 16.07512f;
            }
            else
            {
                base.AimSpriteInstance.RelativeX = 16.07512f;
            }
            if (AimSpriteInstance.Parent == null)
            {
                base.AimSpriteInstance.Y = 97.46671f;
            }
            else
            {
                base.AimSpriteInstance.RelativeY = 97.46671f;
            }
            base.AimSpriteInstance.Texture            = AllParticles;
            base.AimSpriteInstance.LeftTexturePixel   = 1635f;
            base.AimSpriteInstance.RightTexturePixel  = 1636f;
            base.AimSpriteInstance.TopTexturePixel    = 1579f;
            base.AimSpriteInstance.BottomTexturePixel = 1580f;
            base.AimSpriteInstance.TextureScale       = 1f;
            if (PivotPoint.Parent == null)
            {
                PivotPoint.CopyAbsoluteToRelative();
                PivotPoint.AttachTo(this, false);
            }
            if (PivotPoint.Parent == null)
            {
                base.PivotPoint.X = 15f;
            }
            else
            {
                base.PivotPoint.RelativeX = 15f;
            }
            if (PivotPoint.Parent == null)
            {
                base.PivotPoint.Y = 95f;
            }
            else
            {
                base.PivotPoint.RelativeY = 95f;
            }
            if (LightAimSpriteInstance.Parent == null)
            {
                LightAimSpriteInstance.CopyAbsoluteToRelative();
                LightAimSpriteInstance.AttachTo(this, false);
            }
            base.LightAimSpriteInstance.Texture                      = AllParticles;
            base.LightAimSpriteInstance.LeftTexturePixel             = 0f;
            base.LightAimSpriteInstance.RightTexturePixel            = 1f;
            base.LightAimSpriteInstance.TopTexturePixel              = 0f;
            base.LightAimSpriteInstance.BottomTexturePixel           = 1f;
            base.LightAimSpriteInstance.TextureScale                 = 1f;
            base.LightAimSpriteInstance.UseAnimationRelativePosition = false;
            base.LightAimSpriteInstance.Animate                      = false;
            base.LightAimSpriteInstance.Visible                      = false;
            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = oldShapeManagerSuppressAdd;
        }
Esempio n. 25
0
 public void Draw(SpriteInstance iconSprite, SpriteInstance backgroundSprite)
 {
     backgroundSprite.DrawFrame(Location, Value > 0 ? "Frame_Active" : "Frame_Disabled");
     iconSprite.DrawFrame(Location, Frame);
     GameCore.Instance.SpriteBatch.DrawString(SpriteManager.Fonts["Font"], Value > 0 ? Value.ToString() : "OoC", Location + new Vector2(24, -5), Color.White);
 }
        public override void PostInitialize()
        {
            bool oldShapeManagerSuppressAdd = FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue;

            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = true;
            base.PostInitialize();
            if (SpriteInstance.Parent == null)
            {
                SpriteInstance.CopyAbsoluteToRelative();
                SpriteInstance.AttachTo(this, false);
            }
            base.SpriteInstance.Texture            = AllParticles;
            base.SpriteInstance.LeftTexturePixel   = 1617f;
            base.SpriteInstance.RightTexturePixel  = 1694f;
            base.SpriteInstance.TopTexturePixel    = 1948f;
            base.SpriteInstance.BottomTexturePixel = 2031f;
            base.SpriteInstance.TextureScale       = 1f;
            base.SpriteInstance.AnimationChains    = BaseStructureAnimationChainListFile;
            base.SpriteInstance.CurrentChainName   = "PiercingTower";
            if (mAxisAlignedRectangleInstance.Parent == null)
            {
                mAxisAlignedRectangleInstance.CopyAbsoluteToRelative();
                mAxisAlignedRectangleInstance.AttachTo(this, false);
            }
            base.AxisAlignedRectangleInstance.Width  = 64f;
            base.AxisAlignedRectangleInstance.Height = 64f;
            if (LightSpriteInstance.Parent == null)
            {
                LightSpriteInstance.CopyAbsoluteToRelative();
                LightSpriteInstance.AttachTo(this, false);
            }
            if (LightSpriteInstance.Parent == null)
            {
                base.LightSpriteInstance.X = -2.5f;
            }
            else
            {
                base.LightSpriteInstance.RelativeX = -2.5f;
            }
            if (LightSpriteInstance.Parent == null)
            {
                base.LightSpriteInstance.Y = 36f;
            }
            else
            {
                base.LightSpriteInstance.RelativeY = 36f;
            }
            if (LightSpriteInstance.Parent == null)
            {
                base.LightSpriteInstance.Z = -1f;
            }
            else
            {
                base.LightSpriteInstance.RelativeZ = -1f;
            }
            base.LightSpriteInstance.Texture            = AllParticles;
            base.LightSpriteInstance.LeftTexturePixel   = 1792f;
            base.LightSpriteInstance.RightTexturePixel  = 2048f;
            base.LightSpriteInstance.TopTexturePixel    = 1792f;
            base.LightSpriteInstance.BottomTexturePixel = 2048f;
            base.LightSpriteInstance.TextureScale       = 1f;
            base.LightSpriteInstance.Width  = 1f;
            base.LightSpriteInstance.Height = 1f;
            #if FRB_MDX
            LightSpriteInstance.ColorOperation = Microsoft.DirectX.Direct3D.TextureOperation.Modulate;
            #else
            base.LightSpriteInstance.ColorOperation = FlatRedBall.Graphics.ColorOperation.Modulate;
            #endif
            base.LightSpriteInstance.Blue  = 0.5f;
            base.LightSpriteInstance.Alpha = 0.25f;
            if (AimSpriteInstance.Parent == null)
            {
                AimSpriteInstance.CopyAbsoluteToRelative();
                AimSpriteInstance.AttachTo(this, false);
            }
            if (AimSpriteInstance.Parent == null)
            {
                base.AimSpriteInstance.X = 2f;
            }
            else
            {
                base.AimSpriteInstance.RelativeX = 2f;
            }
            if (AimSpriteInstance.Parent == null)
            {
                base.AimSpriteInstance.Y = 46.11102f;
            }
            else
            {
                base.AimSpriteInstance.RelativeY = 46.11102f;
            }
            if (AimSpriteInstance.Parent == null)
            {
                base.AimSpriteInstance.Z = 0.1f;
            }
            else
            {
                base.AimSpriteInstance.RelativeZ = 0.1f;
            }
            base.AimSpriteInstance.Texture            = AllParticles;
            base.AimSpriteInstance.LeftTexturePixel   = 1598f;
            base.AimSpriteInstance.RightTexturePixel  = 1782f;
            base.AimSpriteInstance.TopTexturePixel    = 1827f;
            base.AimSpriteInstance.BottomTexturePixel = 1946f;
            base.AimSpriteInstance.TextureScale       = 1f;
            if (ArrowSpriteInstance.Parent == null)
            {
                ArrowSpriteInstance.CopyAbsoluteToRelative();
                ArrowSpriteInstance.AttachTo(this, false);
            }
            if (ArrowSpriteInstance.Parent == null)
            {
                ArrowSpriteInstance.X = 1f;
            }
            else
            {
                ArrowSpriteInstance.RelativeX = 1f;
            }
            if (ArrowSpriteInstance.Parent == null)
            {
                ArrowSpriteInstance.Y = 57.24112f;
            }
            else
            {
                ArrowSpriteInstance.RelativeY = 57.24112f;
            }
            if (ArrowSpriteInstance.Parent == null)
            {
                ArrowSpriteInstance.Z = 0f;
            }
            else
            {
                ArrowSpriteInstance.RelativeZ = 0f;
            }
            ArrowSpriteInstance.Texture            = AllParticles;
            ArrowSpriteInstance.LeftTexturePixel   = 2019f;
            ArrowSpriteInstance.RightTexturePixel  = 2034f;
            ArrowSpriteInstance.TopTexturePixel    = 1571f;
            ArrowSpriteInstance.BottomTexturePixel = 1712f;
            ArrowSpriteInstance.TextureScale       = 1f;
            if (PivotPoint.Parent == null)
            {
                PivotPoint.CopyAbsoluteToRelative();
                PivotPoint.AttachTo(this, false);
            }
            if (PivotPoint.Parent == null)
            {
                base.PivotPoint.X = -2.5f;
            }
            else
            {
                base.PivotPoint.RelativeX = -2.5f;
            }
            if (PivotPoint.Parent == null)
            {
                base.PivotPoint.Y = 36f;
            }
            else
            {
                base.PivotPoint.RelativeY = 36f;
            }
            if (LightAimSpriteInstance.Parent == null)
            {
                LightAimSpriteInstance.CopyAbsoluteToRelative();
                LightAimSpriteInstance.AttachTo(this, false);
            }
            base.LightAimSpriteInstance.Texture         = AllParticles;
            base.LightAimSpriteInstance.TextureScale    = 1f;
            base.LightAimSpriteInstance.AnimationChains = StructureGlowAnimationChainList;
            base.LightAimSpriteInstance.Visible         = false;
            FlatRedBall.Math.Geometry.ShapeManager.SuppressAddingOnVisibilityTrue = oldShapeManagerSuppressAdd;
        }