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); }
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); }
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); }
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); }