Exemplo n.º 1
0
        public ParticleEmitterTimeline(BinaryReader BR, ContentManager Content)
            : base(BR, TimelineType)
        {
            Matrix view = Matrix.Identity;

            Matrix Projection      = Matrix.CreateOrthographicOffCenter(0, 800, 600, 0, 0, 1);
            Matrix HalfPixelOffset = Matrix.CreateTranslation(-0.5f, -0.5f, 0);

            Projection = view * (HalfPixelOffset * Projection);

            Particle3DSample.ParticleSettings ParticleSettings = new Particle3DSample.ParticleSettings();
            ParticleSettings.TextureName       = BR.ReadString();
            ParticleSettings.MaxParticles      = 20000;
            ParticleSettings.MinScale          = new Vector2(1, 1);
            ParticleSettings.DurationInSeconds = 1d;
            ParticleSettings.Gravity           = new Vector2(0, 0);
            ParticleSettings.NumberOfImages    = 16;
            ParticleSettings.BlendState        = BlendState.AlphaBlend;
            ParticleSettings.StartingAlpha     = 0.7f;
            ParticleSettings.EndAlpha          = 0.1f;

            _SpawnOffset       = new Vector2(BR.ReadSingle(), BR.ReadSingle());
            _SpawnOffsetRandom = new Vector2(BR.ReadSingle(), BR.ReadSingle());
            SpawnSpeed         = new Vector2(BR.ReadSingle(), BR.ReadSingle());
            SpawnSpeedRandom   = new Vector2(BR.ReadSingle(), BR.ReadSingle());

            ParticlesPerSeconds = BR.ReadDouble();
            ParticleSettings.DurationInSeconds = BR.ReadSingle();
            float SpeedMultiplier = BR.ReadSingle();

            ParticleSettings.NumberOfImages = BR.ReadInt32();
            ParticleSettings.Gravity        = new Vector2(BR.ReadSingle(), BR.ReadSingle());
            Vector2 Size = new Vector2(BR.ReadSingle(), BR.ReadSingle());

            ParticleSettings.MinScale      = new Vector2(BR.ReadSingle(), BR.ReadSingle());
            ParticleSettings.StartingAlpha = BR.ReadSingle();
            ParticleSettings.EndAlpha      = BR.ReadSingle();
            _ParticleBlendState            = (ParticleBlendStates)BR.ReadByte();

            TimeBetweenEachParticle = 1 / ParticlesPerSeconds;
            ParticleSystem          = new Particle3DSample.ParticleSystem(ParticleSettings);
            ParticleSystem.LoadContent(Content, GameScreen.GraphicsDevice, Projection);

            this.SpeedMultiplier = SpeedMultiplier;
            this.Size            = Size;
            UpdateSize();

            int DicAnimationSpriteKeyFrameCount = BR.ReadInt32();

            for (int E = 0; E < DicAnimationSpriteKeyFrameCount; E++)
            {
                int Key = BR.ReadInt32();

                VisibleAnimationObjectKeyFrame NewAnimatedBitmapKeyFrame = new VisibleAnimationObjectKeyFrame(BR);

                DicAnimationKeyFrame.Add(Key, NewAnimatedBitmapKeyFrame);
            }

            Origin = new Point(Width / 2, Height / 2);
        }
Exemplo n.º 2
0
        public override List <VisibleTimeline> CreateNewEditorItem(AnimationClass ActiveAnimation, AnimationClass.AnimationLayer ActiveLayer, int KeyFrame, System.Drawing.Point MousePosition)
        {
            List <VisibleTimeline> ReturnValue = new List <VisibleTimeline>();

            AnimatedBitmapSpawnerHelper NewSpawner = new AnimatedBitmapSpawnerHelper();

            if (NewSpawner.ShowDialog() == DialogResult.OK)
            {
                string SpriteName = "Animations/Sprites/" + NewSpawner.SpawnViewer.BitmapName;

                Matrix view = Matrix.Identity;

                Matrix Projection      = Matrix.CreateOrthographicOffCenter(0, ActiveLayer.renderTarget.Width, ActiveLayer.renderTarget.Height, 0, 0, 1);
                Matrix HalfPixelOffset = Matrix.CreateTranslation(-0.5f, -0.5f, 0);

                Projection = view * (HalfPixelOffset * Projection);

                Particle3DSample.ParticleSettings ParticleSettings = new Particle3DSample.ParticleSettings();
                ParticleSettings.TextureName       = SpriteName;
                ParticleSettings.MaxParticles      = 20000;
                ParticleSettings.MinScale          = new Vector2(1, 1);
                ParticleSettings.DurationInSeconds = 1d;
                ParticleSettings.Gravity           = new Vector2(0, 0);
                ParticleSettings.NumberOfImages    = 1;
                ParticleSettings.BlendState        = BlendState.AlphaBlend;
                ParticleSettings.StartingAlpha     = 0.7f;
                ParticleSettings.EndAlpha          = 0.1f;
                int StripIndex = SpriteName.IndexOf("_strip");
                if (StripIndex > 0)
                {
                    StripIndex += 6;
                    string ImageInformation = SpriteName.Substring(StripIndex);
                    ParticleSettings.NumberOfImages = Convert.ToInt32(ImageInformation);
                }
                ParticleSystem = new Particle3DSample.ParticleSystem(ParticleSettings);
                ParticleSystem.LoadContent(NewSpawner.SpawnViewer.content, GameScreen.GraphicsDevice, Projection);

                ParticleEmitterTimeline NewParticleEmitorTimeline = new ParticleEmitterTimeline(ParticleSystem);

                NewParticleEmitorTimeline.Position   = new Vector2(535, 170);
                NewParticleEmitorTimeline.SpawnFrame = KeyFrame;
                NewParticleEmitorTimeline.DeathFrame = KeyFrame + 10;
                NewParticleEmitorTimeline.IsUsed     = true;//Disable the spawner as we spawn the AnimatedBitmap manually.
                NewParticleEmitorTimeline.Add(
                    KeyFrame, new VisibleAnimationObjectKeyFrame(new Vector2(NewParticleEmitorTimeline.Position.X, NewParticleEmitorTimeline.Position.Y),
                                                                 true, -1));

                ReturnValue.Add(NewParticleEmitorTimeline);
            }
            return(ReturnValue);
        }
Exemplo n.º 3
0
        public SuperTank2()
        {
            int MaxParticle = 65535 / 4;

            Particle3DSample.ParticleSettings FlameParticleSettings = new Particle3DSample.ParticleSettings();
            FlameParticleSettings.TextureName   = "Animations/Bitmap Animations/Super Tank 2/Misc/Particule";
            FlameParticleSettings.MaxParticles  = 20000;
            FlameParticleSettings.Duration      = TimeSpan.FromSeconds(1);
            FlameParticleSettings.Gravity       = new Vector2(0, 0.5f);
            FlameParticleSettings.MinScale      = new Vector2(0, 0);
            FlameParticleSettings.StartingAlpha = 1f;
            FlameParticleSettings.EndAlpha      = 0.4f;
            FlameParticle.ParticleSystem        = new Particle3DSample.ParticleSystem(FlameParticleSettings);

            Particle3DSample.ParticleSettings PropulsorParticleSettings = new Particle3DSample.ParticleSettings();
            PropulsorParticleSettings.TextureName   = "Animations/Bitmap Animations/Super Tank 2/Misc/Propulsor";
            PropulsorParticleSettings.MaxParticles  = MaxParticle;
            PropulsorParticleSettings.Duration      = TimeSpan.FromSeconds(1);
            PropulsorParticleSettings.Gravity       = new Vector2(0, 0);
            PropulsorParticleSettings.MinScale      = new Vector2(0, 0);
            PropulsorParticleSettings.StartingAlpha = 1f;
            PropulsorParticleSettings.EndAlpha      = 0.4f;
            Propulsor.ParticleSystem = new Particle3DSample.ParticleSystem(PropulsorParticleSettings);

            Particle3DSample.ParticleSettings BombFlameParticleSettings = new Particle3DSample.ParticleSettings();
            BombFlameParticleSettings.TextureName   = "Animations/Bitmap Animations/Super Tank 2/Bombs/Boss bomb";
            BombFlameParticleSettings.MaxParticles  = 5000;
            BombFlameParticleSettings.Duration      = TimeSpan.FromSeconds(0.5);
            BombFlameParticleSettings.Gravity       = new Vector2(0, 0);
            BombFlameParticleSettings.MinScale      = new Vector2(0.5f, 0.5f);
            BombFlameParticleSettings.StartingAlpha = 1f;
            BombFlameParticleSettings.EndAlpha      = 0.4f;
            Boss1.BombFlame.ParticleSystem          = new Particle3DSample.ParticleSystem(BombFlameParticleSettings);

            Particle3DSample.ParticleSettings FlakTraceParticleSettings = new Particle3DSample.ParticleSettings();
            FlakTraceParticleSettings.TextureName   = "Animations/Bitmap Animations/Super Tank 2/Tank/Secondary weapons/Flak trace";
            FlakTraceParticleSettings.MaxParticles  = MaxParticle;
            FlakTraceParticleSettings.Duration      = TimeSpan.FromSeconds(0.5);
            FlakTraceParticleSettings.Gravity       = new Vector2(0, 0);
            FlakTraceParticleSettings.MinScale      = new Vector2(1, 1);
            FlakTraceParticleSettings.StartingAlpha = 1f;
            FlakTraceParticleSettings.EndAlpha      = 0.4f;
            FlakTrace.ParticleSystem = new Particle3DSample.ParticleSystem(FlakTraceParticleSettings);
        }
Exemplo n.º 4
0
        public static void Load(ContentManager Content, GraphicsDevice GraphicsDevice, int Width, int Height)
        {
            Matrix view = Matrix.Identity;

            Matrix Projection      = Matrix.CreateOrthographicOffCenter(0, Width, Height, 0, 0, 1);
            Matrix HalfPixelOffset = Matrix.CreateTranslation(-0.5f, -0.5f, 0);

            Projection = view * (HalfPixelOffset * Projection);

            Particle3DSample.ParticleSettings PropulsorParticleSettings = new Particle3DSample.ParticleSettings();
            PropulsorParticleSettings.TextureName       = "Triple Thunder/Jetpack Flare_strip16";
            PropulsorParticleSettings.MaxParticles      = 20000;
            PropulsorParticleSettings.MinScale          = new Vector2(1, 1);
            PropulsorParticleSettings.DurationInSeconds = 1d;
            PropulsorParticleSettings.Gravity           = new Vector2(0, 0);
            PropulsorParticleSettings.NumberOfImages    = 16;
            PropulsorParticleSettings.BlendState        = BlendState.AlphaBlend;
            PropulsorParticleSettings.StartingAlpha     = 0.7f;
            PropulsorParticleSettings.EndAlpha          = 0.1f;
            ParticleSystem = new Particle3DSample.ParticleSystem(PropulsorParticleSettings);
            ParticleSystem.LoadContent(Content, GraphicsDevice, Projection);
        }