Jypeli  9
The simple game programming library
Smoke.cs
Siirry tämän tiedoston dokumentaatioon.
1 using System;
3 
4 namespace Jypeli.Effects
5 {
9  public class Smoke : ParticleSystem
10  {
11  private double addTime;
12  private double width;
13 
17  public Smoke()
18  : base(Game.LoadImageFromResources("Smoke.png"), 100)
19  {
20  this.Angle = Angle.FromDegrees(90);
21  this.width = 5;
22  }
23 
29  public Smoke(Image particleImage, double width)
30  : base(particleImage, (int)width*4)
31  {
32  this.Angle = Angle.FromDegrees(90);
33  this.width = width;
34  }
35 
39  protected override void InitializeParticles()
40  {
41  MinLifetime = 4.0;
42  MaxLifetime = 4.2;
43 
44  MinScale = 70;
45  MaxScale = 100;
46 
47  ScaleAmount = 1;
48 
49  AlphaAmount = 0.3;
50 
51  MinVelocity = 40;
52  MaxVelocity = 60;
53 
54  MinAcceleration = 1;
55  MaxAcceleration = 1;
56 
57  MinRotationSpeed = -MathHelper.PiOver4;
58  MaxRotationSpeed = MathHelper.PiOver4;
59 
60  }
61 
66  protected override Vector GiveRandomDirection()
67  {
69  }
70 
75  public override void Update(Time time)
76  {
77  double t = time.SinceLastUpdate.TotalSeconds;
78  addTime += t;
79  if (addTime > 0.1)
80  {
81  for (int i = 0; i < (int)Math.Ceiling(width/50); i++)
82  {
83  base.AddEffect(RandomGen.NextDouble(Position.X - width / 2, Position.X + width / 2), Position.Y, 2);
84  }
85 
86  addTime = 0;
87  }
88  base.Update(time);
89  }
90 
96  protected override void InitializeParticle(Particle p, Vector position)
97  {
98  base.InitializeParticle(p, position);
99 
100  if(!IgnoreWind)
101  p.Acceleration = Game.Wind;
102 
103  }
104  }
105 }
Jypeli.Effects.Smoke.width
double width
Definition: Smoke.cs:12
Jypeli.Effects.ParticleSystem.MaxVelocity
double MaxVelocity
Suurin nopeus joka efektin partikkelilla voi olla
Definition: ParticleSystem.cs:63
Jypeli.Effects.Smoke.GiveRandomDirection
override Vector GiveRandomDirection()
Lasketaan savun suunnalle satunnaisuutta
Definition: Smoke.cs:66
Jypeli.Effects.Smoke.InitializeParticle
override void InitializeParticle(Particle p, Vector position)
Alustetaan partikkeli
Definition: Smoke.cs:96
Microsoft.Xna
Definition: JypeliContentManager.cs:6
Jypeli.Effects.ParticleSystem
Järjestelmä partikkelien käsittelyyn
Definition: ParticleSystem.cs:19
Jypeli.Effects.Smoke
Savuefekti.
Definition: Smoke.cs:10
Jypeli.Effects.Smoke.Smoke
Smoke()
Savu, johon vaikuttaa tuuli
Definition: Smoke.cs:17
Jypeli.Effects.Particle.Acceleration
Vector Acceleration
Partikkelin kiihtyvyys
Definition: Particle.cs:70
Jypeli.Effects.ParticleSystem.MinVelocity
double MinVelocity
Pienin nopeus joka efektin partikkelilla voi olla
Definition: ParticleSystem.cs:59
Microsoft
Definition: JypeliContentManager.cs:6
Microsoft.Xna.Framework
Definition: JypeliContentManager.cs:6
Jypeli.Effects.ParticleSystem.AlphaAmount
double AlphaAmount
Efektin läpinäkyvyyskerroin (0.0-1.0)
Definition: ParticleSystem.cs:108
Jypeli.Effects.Smoke.addTime
double addTime
Definition: Smoke.cs:11
Jypeli.Effects.Smoke.Update
override void Update(Time time)
Päivitetään savua
Definition: Smoke.cs:75
Jypeli.Effects.ParticleSystem.MaxScale
double MaxScale
Suurin skaalaus joka efektin partikkeleilla voi olla
Definition: ParticleSystem.cs:49
Jypeli.Effects.Smoke.Smoke
Smoke(Image particleImage, double width)
Savu, johon vaikuttaa tuuli ja jonka tekstuuria ja leveyttä voi vaihtaa.
Definition: Smoke.cs:29
Jypeli.Effects.ParticleSystem.MaxRotationSpeed
double MaxRotationSpeed
Suurin pyörimisnopeus joka efektin partikkelilla voi olla
Definition: ParticleSystem.cs:93
Jypeli.RandomGen
Satunnaisgeneraattori. Luo satunnaisia arvoja, mm. lukuja, vektoreita sekä kulmia.
Definition: RandomGen.cs:39
Jypeli.Effects.Smoke.InitializeParticles
override void InitializeParticles()
Määritetään oletusarvot efektille
Definition: Smoke.cs:39
Jypeli.Time
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Definition: Time.cs:14
Jypeli.Effects.ParticleSystem.MaxAcceleration
double MaxAcceleration
Suurin kiihtyvyys joka efektin partikkelilla voi olla
Definition: ParticleSystem.cs:83
Jypeli.Effects.ParticleSystem.IgnoreWind
Boolean IgnoreWind
Vaikuttaako efektiin tuuli
Definition: ParticleSystem.cs:117
Jypeli.Time.SinceLastUpdate
TimeSpan SinceLastUpdate
Aika joka on kulunut viime päivityksestä.
Definition: Time.cs:24
Jypeli.Game.Wind
static Vector Wind
Tuuli. Vaikuttaa vain efekteihin
Definition: Effects.cs:21
Jypeli.Effects.Particle
Partikkeli
Definition: Particle.cs:9
Jypeli.Effects.ParticleSystem.MinRotationSpeed
double MinRotationSpeed
Pienin pyörimisnopeus joka efektin partikkelilla voi olla
Definition: ParticleSystem.cs:88
Jypeli.Effects.ParticleSystem.MinScale
double MinScale
Pienin skaalaus joka efektin partikkeleilla voi olla
Definition: ParticleSystem.cs:44
Jypeli.RandomGen.NextDouble
static double NextDouble(double min, double max)
Palauttaa satunnaisen liukuluvun parametrien
Definition: RandomGen.cs:70
Jypeli.Vector.FromLengthAndAngle
static Vector FromLengthAndAngle(double length, double angle)
Luo vektorin pituuden ja kulman perusteella.
Definition: Vector.cs:106
Jypeli.Image
Kuva.
Definition: Image.cs:29
Jypeli.Effects.ParticleSystem.MinAcceleration
double MinAcceleration
Pienin kiihtyvyys joka efektin partikkelilla voi olla
Definition: ParticleSystem.cs:78
Jypeli.Vector
2D-vektori.
Definition: Vector.cs:59
System
Definition: CFFauxAttributes.cs:29
Jypeli.Effects
Definition: ExplosionSystem.cs:4
Jypeli.Angle.FromDegrees
static Angle FromDegrees(double degree)
Luo kulman annettujen asteiden mukaan.
Definition: Angle.cs:324
Jypeli.Effects.ParticleSystem.MaxLifetime
double MaxLifetime
Efektin partikkelin pisin mahdollinen elinaika
Definition: ParticleSystem.cs:73
Jypeli.Effects.ParticleSystem.MinLifetime
double MinLifetime
Efektin partikkelin lyhin mahdollinen elinaika
Definition: ParticleSystem.cs:68
Jypeli.Effects.ParticleSystem.ScaleAmount
double ScaleAmount
Määrä jonka partikkeli skaalautuu päivityksessä
Definition: ParticleSystem.cs:54
Jypeli.Game
Definition: Content.cs:46
Jypeli.Angle
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
Definition: Angle.cs:40