Jypeli  5
The simple game programming library
Flame.cs
Siirry tämän tiedoston dokumentaatioon.
1 using System;
2 using Microsoft.Xna.Framework;
3 
4 namespace Jypeli.Effects
5 {
9  public class Flame : ParticleSystem
10  {
11  private double addTime;
12 
17  public Flame(Image image)
18  : base(image, 100)
19  {
20  Angle = Angle.FromDegrees(90);
21  BlendMode = BlendMode.Alpha;
22  }
23 
27  protected override void InitializeParticles()
28  {
29  MinLifetime = 2.0;
30  MaxLifetime = 2.2;
31 
32  MinScale = 70;
33  MaxScale = 100;
34 
35  ScaleAmount = -2.0;
36  AlphaAmount = 1.0;
37 
38  MinVelocity = 40;
39  MaxVelocity = 70;
40 
41  MinAcceleration = 1;
42  MaxAcceleration = 2;
43 
44  MinRotationSpeed = -MathHelper.PiOver4;
45  MaxRotationSpeed = MathHelper.PiOver4;
46 
47  }
48 
53  protected override Vector GiveRandomDirection()
54  {
55  return Vector.FromLengthAndAngle(1, Angle + Angle.FromDegrees(RandomGen.NextDouble(-5, 5)));
56  }
57 
62  public override void Update(Time time)
63  {
64  double t = time.SinceLastUpdate.TotalSeconds;
65  addTime += t;
66  if (addTime > 0.05)
67  {
68  base.AddEffect(Position, 2);
69  addTime = 0;
70  }
71  base.Update(time);
72  }
73 
79  protected override void InitializeParticle(Particle p, Vector position)
80  {
81  base.InitializeParticle(p, position);
82  if (!IgnoreWind)
84  }
85  }
86 }
Järjestelmä partikkelien käsittelyyn
override void InitializeParticle(Particle p, Vector position)
Alustetaan partikkeli
Definition: Flame.cs:79
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
Definition: Angle.cs:40
override void InitializeParticles()
Määritetään oletusarvot efektille
Definition: Flame.cs:27
Flame(Image image)
Luo uuden liekin.
Definition: Flame.cs:17
Satunnaisgeneraattori. Luo satunnaisia arvoja, mm. lukuja, vektoreita sekä kulmia.
Definition: RandomGen.cs:39
static double NextDouble(double min, double max)
Palauttaa satunnaisen liukuluvun parametrien
Definition: RandomGen.cs:78
TimeSpan SinceLastUpdate
Aika joka on kulunut viime päivityksestä.
Definition: Time.cs:24
override void Update(Time time)
Päivitetään liekkiä
Definition: Flame.cs:62
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Definition: Time.cs:13
Kuva.
Definition: Image.cs:24
Vector Acceleration
Partikkelin kiihtyvyys
Definition: Particle.cs:71
Peliluokka reaaliaikaisille peleille.
Definition: DebugScreen.cs:10
static Vector Wind
Tuuli. Vaikuttaa vain efekteihin
Definition: Game.cs:326
Järjestelmä liekeille
Definition: Flame.cs:9
2D-vektori.
Definition: Vector.cs:56
override Vector GiveRandomDirection()
Lasketaan liekin suunnalle satunnaisuutta
Definition: Flame.cs:53
static Angle FromDegrees(double degree)
Luo kulman annettujen asteiden mukaan.
Definition: Angle.cs:325